gdb没有此类文件或目录错误

时间:2016-08-29 06:44:51

标签: gdb arm gdbserver

更新:找到了解决方法 - 在底部解释

我正在尝试通过串口远程调试我的程序。 在目标机器(arm,linux)上(通过串口连接到主机(Windows))我通过Putty连接并查找ttyS*目录中的/dev,但是我没有。我只有tty[num](没有S),并且正在运行:

dmesg | grep tty

如建议here给出以下内容:

# dmesg | grep tty
Kernel command line: mxc_hdmi.only_cea=0 console=ttymxc1,115200 vmalloc=400M consoleblank=0 rootwait fixrtc root=/dev/mmcblk1p1
2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58, base_baud = 5000000) is a IMX
21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 59, base_baud = 5000000) is a IMX
console [ttymxc1] enabled

所以我尝试使用ttymxc0ttymxc1

gdbserver /dev/ttymxc0 ./test/main
Process ./test/main created; pid = 253
Remote debugging using /dev/ttymxc0

并在主机上(Windows 7):(在评论后编辑)

gdb path/on/host/main
(gdb) target remote COM15
COM15: No such file or directory.

我看到here序列在 gdb 6.6 处被破解,但我有 gdb 7.7

为什么我收到没有这样的文件或目录错误?

编辑2:

虽然我尝试将端口重命名为 COM5 并且它没有帮助(相同的结果),但我将端口重命名为 COM2 并且它工作了一次然后它退出并停止工作:

(gdb) target remote COM2
Remote debugging using COM2
Ignoring packet error, continuing...
Malformed response to offset query, qOffsets //got out
(gdb) target remote COM2 //tried again, didn't work
COM2: No such file or directory.

COM2 COM15 之间的区别(除数字编号外)是 在Windows设备管理器中 COM2 显示为“已使用”,而 COM15 (和 COM5 )则未显示。当我选择 COM2 作为新名称时,Windows警告我它已被使用但我仍接受了更改。

现在我cleared all COM ports现在它正在交替工作(尚未成功实际调试,但它不会落在“没有这样的文件或目录”错误上。)

编辑3:

现在target remote COM2响应“使用COM2进行远程调试,格式错误的响应......”当我通过Putty连接到目标时。当我通过Putty连接时,它显示“COM2:没有这样的文件或目录”。这就像端口被(由Putty)占用而gdb无法登录。

我最终通过TCP连接而不是串行连接:

  • 通过以太网电缆将目标连接到互联网
  • 修改/etc/network/interfaces以设置dhcp:
  

auto eth0

     

iface eth0 inet dhcp

  • 在目标上运行ifconfigip addr以获取IP
  • 在目标上运行:

gdbserver [ip:port] ./path/to/executable/on/target

  • 在主持人上运行:

gdb path/to/executable/on/host/compiled/to/target

(gdb) target remote [target's ip:port]

这对我来说是一个充分的解决方法。

0 个答案:

没有答案