我正在使用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位调试器的选项!
有什么建议吗?
答案 0 :(得分:0)
解决方法是使用要在命令行上调试的程序启动dbxtool。 e.g。
dbxtool buggyprogram buggyparameter
另一种解决方法是终止自动加载并打开新的dbx会话。
如果您在流程中附加了不受支持的体系结构错误,请调试文件,然后附加到流程,重新使用现有会话。