【问题标题】:GDB Remote Debug with CLion not working使用 CLion 进行 GDB 远程调试不起作用
【发布时间】:2017-02-26 12:43:34
【问题描述】:

这是我的场景:

  • 我可以通过以下命令使用终端进行调试:

    • gdb myprog
    • 破解 myprog.c:4115
    • 运行 --myarg
    • 断点有效,我可以进入程序
  • 我尝试在 Fedora 系统中使用 CLion 16.2.2 进行远程调试:

    • 在我运行的服务器中: gdbserver localhost:8080 myprog --myarg
    • 我明白了: 创建的过程数据; PID = 80199 监听 8080 端口
    • 在带有 CLion 的 Linux 客户端中:
    • 设置/部署/配置 SFTP(上传和下载工作正常)
    • 从服务器下载所有文件
    • 编辑配置
    • 创建新的 GDB 远程调试:
    • GDB:默认(捆绑)
    • 目标:tcp:193.101.144.128:8080
    • 符号文件:{空白}
    • Sysroot:{空白}
    • 路径映射:服务器路径和本地路径
    • 运行调试器
    • 在我看到的服务器终端上:
    • 从主机 172.24.10.2 远程调试(这让我相信我很接近)
    • address_string = T:servername:4311
    • 在 CLion 控制台中我看到:
    • 调试器连接到 tcp:193.101.144.128:8080(连接正常!)

尽管来自 GDB 服务器和客户端的连接似乎正在工作,但我似乎遗漏了一些东西,因为调试器工具(单步执行、单步执行、继续等)仍然灰显,并且从未到达断点。

从第一次测试我知道我使用的断点应该可以工作。

我怀疑我在这一行中用于传递程序参数 (--myarg) 的方式:gdbserver localhost:8080 myprog --myarg 它不正确,但我不知道在哪里传递它。

我期待能够使用这个很棒的 IDE 而不是使用终端进行调试。我很接近,但被困在这里。非常感谢一些帮助!

谢谢

【问题讨论】:

  • 在 IDE 底部我看到这条消息:IBus 1.5.11 之前可能会导致输入问题
  • 仅供参考:您的问题似乎是由附加期间不需要的“命令超时”引起的,并被跟踪为youtrack.jetbrains.com/issue/CPP-7906,请随时投票。免责声明:我负责 CLion 中的调试器,并且我知道您发送到我们支持渠道的日志。
  • 顺便说一句,作为一种解决方法,您可以尝试在调试配置中指定sysroot,我建议您从/ 开始。更多信息在这里:sourceware.org/gdb/onlinedocs/gdb/…
  • 您好,我尝试添加 sysroot,首先作为 / 并使用部署程序可执行文件的服务器中的路径,但都没有解决问题。我注意到的唯一区别是,使用这些设置,消息“readchar: Got EOF”被显示多次(前者为 8 次,后者为 20 次)在 CLion 控制台中我仍然得到命令超时我真的很感激所有的努力是被要求提供帮助。谢谢!

标签: gdb remote-debugging clion gdbserver


【解决方案1】:

我遇到了同样的问题。在我的情况下,问题的根本原因是目标设备上项目文件夹的绝对路径与我本地机器上的绝对路径不同。 在运行/调试配置对话框中添加正确的路径映射后,调试器开始工作。
例如:
路径映射:
服务器路径:/home/ubuntu/src/yourprojectname/
本地路径:/home/michael/Documents/src/yourprojectname/

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 1970-01-01
    • 2014-12-16
    • 2014-07-19
    • 2011-10-18
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多