0

我正在使用 dbxtool 的 Linux 版本来调试一个名为 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 位调试器!

有什么建议么?

4

1 回答 1

0

一种解决方法是在命令行上使用要调试的程序启动 dbxtool。例如

dbxtool buggyprogram buggyparameter

另一种解决方法是终止自动加载并打开一个新会话的 dbx 会话。

如果您收到附加到进程的不受支持的体系结构错误,请调试文件,然后附加到进程,重用现有会话。

于 2009-08-13T12:31:02.853 回答