使用目标远程 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 expr
id -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 执行以下命令。
制作qemu-gdb
make gdb(在另一个终端。)
这个问题的原因是当你执行make gdb命令时,你结束了make gdb的执行。所以qemu 服务器连接超时。
在图片中,我们也找不到远程gdb端口等信息...
您应该更改 .gdbint 文件中的端口。它告诉 GDB 要分离哪个端口。我用这种方法解决了这个问题。
我一直在尝试在本地调试我的 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 expr
id -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 执行以下命令。
制作qemu-gdb
make gdb(在另一个终端。)
这个问题的原因是当你执行make gdb命令时,你结束了make gdb的执行。所以qemu 服务器连接超时。 在图片中,我们也找不到远程gdb端口等信息...
您应该更改 .gdbint 文件中的端口。它告诉 GDB 要分离哪个端口。我用这种方法解决了这个问题。