我正在使用 Linux 版本的 dbxtool 来调试名为 Frankie 的 64 位程序:
file ../support/frankie
../support/frankie: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped
当我尝试在 dbxtool 中加载可执行文件时,收到一条“不支持的体系结构”消息,我认为这意味着加载了 32 位版本的 dbx:
(dbx) debug ~/support/frankie
dbx: ~/support/frankie has unsupported architecture or file format
但是,如果我从命令行运行 dbx,它就能够加载该文件,大概是通过自动加载 64 位版本的调试器来加载该文件。
(dbx) debug ../support/frankie
Reading frankie
Reading ld-linux-x86-64.so.2
Reading libm.so.6
Reading libncurses.so.5
Reading libc.so.6
Reading libdl.so.2
我找不到任何可以强制 dbxtool 使用 64 位调试器的选项,事实上我能找到的唯一一个选项是在 64 位环境中强制使用 32 位调试器!
有什么建议吗?
最佳答案
解决方法是在命令行上启动 dbxtool 以及要调试的程序。 例如
dbxtool buggyprogram buggyparameter
另一种解决方法是终止自动加载的 dbx session 并打开一个新 session 。
如果附加到进程时出现不受支持的体系结构错误,请调试文件,然后附加到该进程,重用现有 session 。
关于linux - 64 位 Linux 上的 dbxtool 无法加载 64 位版本的 dbx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1271226/