我正在尝试在rhel6 64位VM系统上设置insight调试器: uname -a Linux lb-cam-bca-devel 2.6.32-358.23.2.el6.x86_64#1 SMP Sat Sep 14 05:32:37 EDT 2013 x86_64 x86_64 x86_64 GNU / Linux
我已经下载了来自ftp://sourceware.org/pub/insight/releases的来源 - insight-6.8-1a.tar.bz2, 配置,构建和安装。
我可以提升洞察力,但是当我尝试设置断点时,它们不会被击中。
这是我尝试过的: 1)通过鼠标单击装配视图设置断点,然后从GUI中选择“运行”。可执行文件一直运行到最后。控制台视图上的输出是"程序正常退出。"
2)通过鼠标单击源代码设置断点,然后从GUI中选择Run。 Insight窗口全部消失(崩溃?)。 "分段错误"输出到终端。
3)从GUI中删除默认断点,并在控制台窗口中从gdb命令行设置断点。输入r即可运行。 Insight窗口全部消失(崩溃?)。 "分段错误"输出到终端。
如果我只是从终端运行gdb,我可以设置断点并逐步完成源文件。
我正在调试的文件是一本简单的asm脚本,取自一本书(汇编语言一步一步)。
我用来构建文件的命令是: nasm -f elf64 -g -F dwarf eatsyscall.asm ld -o eatsyscall eatsyscall.o
我用来打开洞察力的命令是: 洞察力eatsyscall
有人会知道这里会发生什么吗?或者有人可以建议我如何调试问题?我此刻有点卡在上面。
我在网上报告的最接近此行为的事情是: osdir.com/ml/debugging.insight/2008-09/msg00001.html
但我的案例中没有涉及共享库。
答案 0 :(得分:1)
我有同样的问题,解决使用dwarf作为调试信息格式,即组装代码(如果使用nasm)
nasm -f elf -g -F dwarf anyfile.asm
(-g
的格式设置为" stabs"默认情况下,但gdb更好地理解矮人,您可以使用-F
开关更改它
现在将目标代码链接为(如果使用gnu' s链接器)
ld -o executable_name anyfile.o
使用dwarf作为调试格式,您现在可以设置断点。