洞察调试器断点不起作用

时间:2015-02-10 13:35:35

标签: linux debugging assembly breakpoints insight

我正在尝试在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

但我的案例中没有涉及共享库。

1 个答案:

答案 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作为调试格式,您现在可以设置断点。