我利用Linux版本dbxtool的调试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内加载可执行文件,我得到一个“不支持架构”的消息,这是我假定意味着DBX的32位版本被加载:

(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与在命令行上被调试的程序。 e.g。

dbxtool buggyprogram buggyparameter

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

如果你不支持的架构错误连接到一个过程,调试文件,然后附加到这个过程中,重用现有的会话。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top