如何为目标制作 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?
您的构建看起来正确,但不起作用。目前还不清楚为什么,所以你需要调试它。
这个 gdb
在目标上的退出状态是什么?
./gdb --version; echo $?
它真的有作用吗?
strace ./gdb --version
- 内核消息日志中有什么有趣的东西吗?
根据上述问题的答案,可以进一步猜测出了什么问题。
也许有一些 .gdbinit
告诉 GDB 退出?这是做什么的:
./gdb -nx --version
?
我正在尝试从源代码编译 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?
您的构建看起来正确,但不起作用。目前还不清楚为什么,所以你需要调试它。
这个
gdb
在目标上的退出状态是什么?
./gdb --version; echo $?
它真的有作用吗?
strace ./gdb --version
- 内核消息日志中有什么有趣的东西吗?
根据上述问题的答案,可以进一步猜测出了什么问题。
也许有一些 .gdbinit
告诉 GDB 退出?这是做什么的:
./gdb -nx --version
?