代码之家  ›  专栏  ›  技术社区  ›  rammanoj

使用目标远程本地主机:26000

  •  0
  • rammanoj  · 技术社区  · 7 年前

    我一直在尝试在本地调试我的xv6(这是一段32位代码)。但我在一台64位机器上工作,我的gdb是64位的。每当我键入

    生成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文件。我有以下几行

    目标远程本地主机:26000

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

    提前感谢

    4 回复  |  直到 7 年前
        1
  •  1
  •   Employed Russian    7 年前

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

    据我所知,您在问:“为什么GDB尝试连接到localhost:2600”。

    答案是:因为你 询问 GDB使用 target remote localhost:26000 输入您的 ~/.gdbinit

    更新时间:

    我在问这个命令做什么?

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

    一般来说,你不应该在你的 ~/。gdbinit公司 (或任何其他初始化文件)。这样做就像拿着一个未知的物体(一把枪),把它放在你的头上,然后在侧面挤压一个小杠杆(一个扳机)。

    执行它会给我上面的错误,那么你能说出错误是什么吗?以及如何解决

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

        2
  •  1
  •   Kaiwen Sheng    6 年前

    我刚刚解决了你描述的同一个问题。您可以查看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,就可以得到理想的结果。
    希望有帮助:)

        3
  •  0
  •   laizililove    6 年前

    我曾经遇到过和你一样的问题。这个问题困扰了我好几个小时。 但这个问题很容易解决。请执行以下命令。

    1. 制作qemu gdb enter image description here

    2. 生成gdb(在另一个终端中)

    出现此问题的原因是,当您执行 生成gdb 命令,则结束 生成gdb 。因此qemu服务器连接超时。 在图中,我们也找不到像远程gdb端口这样的信息。。。

        4
  •  0
  •   Laurel Enrique    3 年前

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