gdb 远程调试的一个问题:
Don't know how to run. Try "help target".
它在抱怨不知道怎么跑,目标是什么. 你需要为它指定target remote 或target extended-remote
例如:
target extended-remote 192.168.1.136:1234
指明target 是某IP的某端口, 就是说它的target 是远程机上的某程序.
完整示例如下: 各phrase 之间是用空格分割的.
target extended-remote 192.168.1.136:1234 //设置target, 为远程192.168.1.136:1234端口. 本地元远程来通讯.
file ../build-tcpserv03-arm-debug/server //设置本地调试的程序,gdb 会调用这个程序分析
set remote exec-file server //设置远程对应的调试程序,当建立连接后,会通知对方启动对应程序,远程gdbserver会调用这个程序
b main // 设置断点
run // 执行
extended-remote 选项往往与 gdbserver 的 --multi 选项相对应,是说gdbserver 有一次调试多个程序的能力.
远程端可以如下运行(我的是arm 上的gdbserver 程序)
在嵌入式arm上, server 执行文件目录下,运行:
gdbserver --multi :1234 // 启动gdbserver, 并且在1234端口上监听