J-Link GDB 在 CLion 中调试
J-Link GDB debugging in CLion
不久前 CLion added support for Remote GDB debugging 我正在尝试使用 Seggers 的 J-Link GDB 服务器进行设置。
我的设置:
- VM VirtualBox 运行宁 Ubuntu 16.04
- J-Link 驱动程序:V6.10
- 目标芯片:nRF51(ARM Cortex M0)
- CLion 2016.2.2
我通常在 windows 中工作,但由于 CLion 在 windows 中不支持远程 GDB,我正在尝试使其在 运行ning Ubuntu 中工作虚拟盒子。我在上面 link 中的博客的帮助下,如图所示在 CLion 中配置了调试器。我使用的参数基于 J-Link 文档(文档:UM08001)和一些猜测。
GDB server setup
我的问题是,当 运行 启动调试器时,进程刚刚停止并且 CLion 的控制台输出:
"Could not connect to target. Please check power, connection and
settings."
我已经尝试从终端 运行 JLinkGDBServer 然后我得到了这样的结果:
/usr/bin/JLinkGDBServer -device nrf51422_xxAC -if swd -speed 1000 -endian little
SEGGER J-Link GDB Server V6.10 Command Line Version
JLinkARM.dll V6.10 (DLL compiled Sep 14 2016 16:46:16)
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: yes
Generate logfile: off
Verify download: off
Init regs on start: off
Silent mode: off
Single run mode: off
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: nrf51422_xxAC
Target interface: SWD
Target interface speed: 1000kHz
Target endian: little
Connecting to J-Link...
J-Link is connected.
Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jul 5 2016 08:42:09
Hardware: V1.00
S/N: 681666518
Checking target voltage...
Target voltage: 3.30 V
Listening on TCP/IP port 2331
Connecting to target...Connected to target
Waiting for GDB connection...
有人知道我做错了什么吗?
您可能混淆了 GDB 服务器和 GDB 本身。这些是应该在 CLion 的 GDB 远程调试配置中设置的 GDB 选项,而不是 GDB 服务器设置。
也就是说,您首先要从终端手动 运行 JLinkGDBServer,就像您已经完成的那样,然后让它等待 GDB 附加。这时要注意连接端口:
Listening on TCP/IP port 2331
Connecting to target...Connected to target
Waiting for GDB connection...
然后在 CLion 中编辑您的 GDB 远程调试配置以使用主机 GDB(在您的情况下很可能 /usr/bin/gdb
,必要时使用 sudo apt install gdb
安装),并使用上述端口作为"target remote" 字符串的一部分:
- GDB:
/usr/bin/gdb
- "target remote" 参数:
:2331
注意端口前面的冒号。这是一个 shorthand 用于使用 TCP 连接到本地主机。为了以防万一,显式形式是 tcp:localhost:2331
.
现在您可以开始调试会话了。 CLion 将启动配置的主机 GDB,GDB 通过指定的 TCP 连接与 JLinkGDBServer 通信,最后 GDB 服务器与您的设备聊天。
不久前 CLion added support for Remote GDB debugging 我正在尝试使用 Seggers 的 J-Link GDB 服务器进行设置。
我的设置:
- VM VirtualBox 运行宁 Ubuntu 16.04
- J-Link 驱动程序:V6.10
- 目标芯片:nRF51(ARM Cortex M0)
- CLion 2016.2.2
我通常在 windows 中工作,但由于 CLion 在 windows 中不支持远程 GDB,我正在尝试使其在 运行ning Ubuntu 中工作虚拟盒子。我在上面 link 中的博客的帮助下,如图所示在 CLion 中配置了调试器。我使用的参数基于 J-Link 文档(文档:UM08001)和一些猜测。 GDB server setup
我的问题是,当 运行 启动调试器时,进程刚刚停止并且 CLion 的控制台输出:
"Could not connect to target. Please check power, connection and settings."
我已经尝试从终端 运行 JLinkGDBServer 然后我得到了这样的结果:
/usr/bin/JLinkGDBServer -device nrf51422_xxAC -if swd -speed 1000 -endian little
SEGGER J-Link GDB Server V6.10 Command Line Version
JLinkARM.dll V6.10 (DLL compiled Sep 14 2016 16:46:16)
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: yes
Generate logfile: off
Verify download: off
Init regs on start: off
Silent mode: off
Single run mode: off
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: nrf51422_xxAC
Target interface: SWD
Target interface speed: 1000kHz
Target endian: little
Connecting to J-Link...
J-Link is connected.
Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jul 5 2016 08:42:09
Hardware: V1.00
S/N: 681666518
Checking target voltage...
Target voltage: 3.30 V
Listening on TCP/IP port 2331
Connecting to target...Connected to target
Waiting for GDB connection...
有人知道我做错了什么吗?
您可能混淆了 GDB 服务器和 GDB 本身。这些是应该在 CLion 的 GDB 远程调试配置中设置的 GDB 选项,而不是 GDB 服务器设置。
也就是说,您首先要从终端手动 运行 JLinkGDBServer,就像您已经完成的那样,然后让它等待 GDB 附加。这时要注意连接端口:
Listening on TCP/IP port 2331 Connecting to target...Connected to target Waiting for GDB connection...
然后在 CLion 中编辑您的 GDB 远程调试配置以使用主机 GDB(在您的情况下很可能 /usr/bin/gdb
,必要时使用 sudo apt install gdb
安装),并使用上述端口作为"target remote" 字符串的一部分:
- GDB:
/usr/bin/gdb
- "target remote" 参数:
:2331
注意端口前面的冒号。这是一个 shorthand 用于使用 TCP 连接到本地主机。为了以防万一,显式形式是 tcp:localhost:2331
.
现在您可以开始调试会话了。 CLion 将启动配置的主机 GDB,GDB 通过指定的 TCP 连接与 JLinkGDBServer 通信,最后 GDB 服务器与您的设备聊天。