【发布时间】:2016-03-30 13:57:31
【问题描述】:
我有需要调试的远程 ARM Linux 机器。
服务器已启动:
gdbserver :12345 ./my_app
客户:
./arm-am3354-linux-gnueabihf-gdb ~/
(gdb) target remote dev_r:12345
(gdb) continue
然后我尝试使用 Ctrl+C 暂停应用程序,但 gdb 停止:
[Inferior 1 (process 2766) exited with code 01]
在服务器上:
孩子以状态 1 退出 GDBserver 退出
故事: 我试图在 QtCreator 中使用远程调试,但是在运行时设置断点时 gdb 以同样的方式崩溃。断点和暂停在 QtCreator 中也不起作用。 我也在尝试另一个 gdb,比如 gdb-multiarch 和来自 android-sdk 的。
更新: 调试小程序又名 Hello World 有效。本地调试(在 x86 上)也可以。该应用程序本身有数十万行代码、共享库和静态库。
部分解决方案: 我得到的嵌入式平台的 sysroot 可能是无效的。从目标设备复制 /lib/ 和 /usr/ 并将其设置为
set sysroot /home/karel/sysroot
我可以设置断点并且应用程序会在它们处停止。然而,暂停仍在停止远程应用程序。 QtCreator 也一样:Tools->Options->Debugger->GDB->Additional Attach Commands
【问题讨论】:
-
您需要什么设备? ironlab.io 允许在云端的真实设备上进行调试。它们现在处于免费测试阶段。