我正在尝试调试我的主板上运行嵌入式Linux的程序,我将Ubuntu作为主机系统。我对gdbserver有一个很大的问题。你看到的是我的主板没有以太网接口,而是我用于控制台的串口设备,我注意到你可以使用串口设备在gdbserver中进行调试,虽然我找不到这样的例子考虑到在视频或书籍中使用gdbserver的每个人都在TCP模式下使用它,我无法做到这一点。 所以我所做的只是简单地在板上运行gdbserver:
root@DM368# gdbserver /dev/ttyS0 hello
Process hello created; pid = 472
在主机端,我正在使用ddd程序,我跑了:
root@mosi-VirtualBox:~# ddd --debugger arm-linux-gdb
在ddd window终端我输入了:
(gdb) cd /root/home/mySimpleHello/hello
(gdb) target remote /dev/ttyUSB0
(gdb) file hello
并且/ dev / ttyUSB0连接到主板的/ dev / ttyS0
但我在gdb中没有得到任何回复,gdbserver输出中没有任何内容,这有点奇怪。我的意思是没有像“主机连接”或“远程调试......”这样的消息。在我跑的时候在ddd:
(gdb) b main
Breakpoint 1 at 0x83ac: file hello.c, line 10.
(gdb) run
然后gdb说:
the program in not being run
我直接在Ubuntu的终端上尝试了gdb(whitout ddd)并且发生了同样的事情。我甚至尝试使用eclipse,并在eclipse中设置调试配置文件,然后安装了gdb-multiarch程序,并在eclipse中使用它,并将其.gdbinit文件设置为arm。什么都没发生,我不知道为什么这个简单的程序不起作用。
有人有任何想法吗?我究竟做错了什么?如何使用串行连接调试程序?