CLion 中的 J-Link GDB 调试

Posted

技术标签:

【中文标题】CLion 中的 J-Link GDB 调试【英文标题】:J-Link GDB debugging in CLion 【发布时间】:2017-01-25 20:24:45 【问题描述】:

不久前 CLion added support for Remote GDB debugging 我正在尝试使用 Seggers 的 J-Link GDB 服务器进行设置。

我的设置:

运行 Ubuntu 16.04 的 VM VirtualBox J-Link 驱动程序:V6.10 目标芯片:nRF51(ARM Cortex M0) CLion 2016.2.2

我通常在 Windows 中工作,但由于 CLion 不支持 Windows 中的远程 GDB,我试图让它在 VirtualBox 中运行 Ubuntu。我在 CLion 中配置了调试器,如图所示,上面链接中的博客提供了一些帮助。我使用的论据基于 J-Link 文档(文档:UM08001)和一些猜测。 GDB server setup

我的问题是,当运行调试器时,进程会停止并且 CLion 的控制台输出:

“无法连接到目标。请检查电源、连接和 设置。”

我曾尝试从终端运行 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...

有人知道我做错了什么吗?

【问题讨论】:

【参考方案1】:

您可能混淆了 GDB 服务器和 GDB 本身。这些是应该在 CLion 的 GDB 远程调试配置中设置的 GDB 选项,而不是 GDB 服务器设置。

也就是说,您首先手动运行 JLinkGDBServer,例如从终端,就像您已经完成的那样,然后让它等待 GDB 附加。此时应该注意连接端口:

监听 TCP/IP 端口 2331 连接到目标...连接到目标 等待 GDB 连接...

然后在 CLion 中编辑您的 GDB 远程调试配置以使用主机 GDB(在您的情况下很可能是 /usr/bin/gdb,如有必要,请使用 sudo apt install gdb 安装它),并使用上述端口作为“目标远程" 字符串:

GDB:/usr/bin/gdb “目标远程”参数::2331

注意端口前面的冒号。这是使用 TCP 连接到 localhost 的简写。以防万一,显式形式为tcp:localhost:2331

现在您可以开始调试会话了。 CLion会启动配置好的主机GDB,GDB通过指定的TCP连接与JLinkGDBServer通信,最后GDB服务器与你的设备聊天。

【讨论】:

这可以在 IntelliJ 社区版上使用吗?谢谢! @Geob-o-matic,不,此功能仅在 CLion 中可用。 谢谢你,然后坚持使用 eclipse... :'( @Geob-o-matic 您可能想查看 30 天试用版,或者从 EAP 版本开始,它也是免费的。 我不能这样做,因为提供的 SDK 是基于 eclipse 的,我只是想找到一种“流氓”方法来提高我的 QOL,但最后,我需要与 eclipse 设置保持兼容无论如何要和我的同事一起工作。如果我们使用提供的 IDE 以外的其他 IDE,我们将不会从我们的提供商那里获得支持 :)

以上是关于CLion 中的 J-Link GDB 调试的主要内容,如果未能解决你的问题,请参考以下文章

使用 CLion 调试 MySQL

可以在运行/调试配置中使用 CLion 宏吗?

CLion 中的 GDB Monitor 命令

J-LINK在MDK下调试错误

Clion:调试到 cpp 类

clion中无需人工干预自动启动远程调试