linux - 64 位 Linux 上的 dbxtool 无法加载 64 位版本的 dbx?

标签 linux 64-bit debugging dbx sunstudio

我正在使用 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/

相关文章:

c++ - 汇编器 push rdi, pop rdi around function call

c++ - 这是确定性的步调一致吗?

c++ - 如何以及在何处为 Visual C++ OpenCV 项目添加调试符号

c++ - 调试程序窗口不会关闭

vba - 调试VBA,查找问题和故障排除方法

linux - 对于本地运行的 scala spray 服务器,curl localhost 有效,但 curl <local ip> 获取 "Connection refused"

java eclipse 插件 : menuitems appear in windows but not on linux

c++ - 在vim中分屏执行C

c - 使用 libinput 获取原始多点触控数据

C/C++程序同时连接32位DB2和64位DB2