使用目标远程 localhost:26000

Use of target remote localhost:26000

我一直在尝试在本地调试我的 xv6(它是一个 32 位代码)。但是我在 64 位机器上工作,而我的 gdb 是 64 位的。每当我输入

make gdb

我遇到了以下错误

+ target remote localhost:26000
.gdbinit:23: Error in sourced command file:
localhost:26000: Connection timed out.
(gdb) target remote localhost:26000
localhost:26000: Connection timed out.

我有一个 .gdbinit 文件。我有下面这行

target remote localhost:26000

它在这一行返回错误。我最初认为这是因为我机器的 32 位架构。但是如果我转到其他目录并在 gdb 控制台中键入相同的消息,我会收到相同的错误。我真的不明白为什么它应该连接到本地主机(即这里需要什么服务器?)因为 GDB 是一个普通的 GNU 调试器,对吗?上述案例失败的原因是什么?

提前致谢

你的问题(对我)没有任何意义。

据我所知,你问的是:"why does GDB try to connect to localhost:2600"。

答案是:因为您要求 GDB 使用您~/.gdbinit 中的target remote localhost:26000 条目这样做。

更新:

I am asking what does that command do?

它指示 GDB 执行远程调试,并连接到 gdbserver 侦听给定端口。

一般来说,您不应该在 ~/.gdbinit(或任何其他初始化文件)中放入您不理解的任何内容。这样做类似于拿一个未知物体(一把枪),把它放在你的头上,然后挤压侧面的一个小杠杆(扳机)。

and executing it giving me the above error so can you please say what is the error? and how to resolve it

只需删除 ~/.gdbinit 中的命令(以及您不知道其含义的任何其他命令)。

我刚刚解决了您描述的相同问题。您可以查看 GNUmakefile 以搜索您的 gdb-qemu 尝试连接的端口号。在我的 GNUmakefile 中,端口号是 # try to generate a unique GDB port GDBPORT := $(shell exprid -u% 5000 + 25000)
所以当我尝试 运行 sudo make gdb-qemu 时,我得到的结果如下:

qemu-system-i386 -drive file=obj/kern/kernel.img,index=0,media=disk,format=raw -serial mon:stdio -gdb tcp::25000 -D qemu.log  -S  

但是当我 运行 另一个终端到 运行 sudo make gdb 时,我得到了结果:

Type "apropos word" to search for commands related to "word".
+ target remote localhost:26000

端口号不匹配。
所以只需将GNUmakefile中的端口号修改为26000,即可得到理想的结果。
希望对您有所帮助:)

我遇到过和你一样的问题。我被这个问题困扰了几个小时。 但是这个问题是 easy.Please 执行以下命令。

  1. 制作qemu-gdb

  2. make gdb(在另一个终端。)

这个问题的原因是当你执行make gdb命令时,你结束了make gdb的执行。所以qemu 服务器连接超时。 在图片中,我们也找不到远程gdb端口等信息...

您应该更改 .gdbint 文件中的端口。它告诉 GDB 要分离哪个端口。我用这种方法解决了这个问题。