如何为目标制作 gdb 并在那里使用它

How to make gdb for a target and use it there

我正在尝试从源代码编译 gdb-8.2。
构建机器:x86-64
主机和目标:arm-linux-gnueabi

我运行:

CC=arm-linux-gnueabi-gcc ./configure --host=arm-linux-gnueabi --target=arm-linux-gnueabi  
make

然后我运行:

make DESTDIR=<Some Path>/gdb_installation install

所以我在 gdb_installation 文件夹中得到了一个 usr 文件夹。我将 usr/local/bin/gdb 复制到我的目标并且 运行

./gdb

输出:

#./gdb  
#

但它没有显示任何内容。它退出时没有任何消息。

我在这里错过了什么? 运行 文件命令显示 gdb 可执行文件确实是为我的目标构建的。

PS:运行 一个使用 arm-linux-gnueabi-gcc 的示例 hello world 程序在目标上运行得非常好;和文件命令显示与 gdb 相同的输出。

What am I missing here?

您的构建看起来正确,但不起作用。目前还不清楚为什么,所以你需要调试它。

  1. 这个 gdb 在目标上的退出状态是什么?
    ./gdb --version; echo $?

  2. 它真的有作用吗?
    strace ./gdb --version

  3. 内核消息日志中有什么有趣的东西吗?

根据上述问题的答案,可以进一步猜测出了什么问题。

也许有一些 .gdbinit 告诉 GDB 退出?这是做什么的:
./gdb -nx --version?