我在某个场景中遇到分段错误(它是带有 DEC VAX FMS(表单管理系统)调用的 C 代码,用于在 CRT 屏幕上获取某个字段 - 相当旧的遗留代码)。我在 AIX 机器上,并且只安装了 dbx。GDB、valgrind 等不可用。
这是我尝试调试时得到的结果:
Unreadable instruction at address 0x53484950
我不知道如何从这里开始。
我尝试了几件事:
1.
(dbx) up
not that many levels
(dbx) down
not that many levels
(dbx) n
where
Segmentation fault in . at 0x53484950 ($t1)
0x53484950 (???) Unreadable instruction at address 0x53484950
尝试过 tracei(用于机器指令)、转储(转储提供了如此多的输出,我无法理解它)等,但似乎没有任何帮助。
(dbx) &0x53484950/X
expected variable, found "1397246288"
我习惯于在“哪里”获取堆栈跟踪并从那里继续。这是我以前没有遇到过的,看来我也不太擅长 dbx。任何帮助至少找到导致麻烦的代码行表示赞赏。