2015-02-10 85 views
1

我想在rhel6 64位VM系统上设置洞察调试器: uname -a Linux lb-cam-bca-devel 2.6.32-358.23.2.el6.x86_64# 1个SMP星期六09月14 5时32分37秒EDT 2013 x86_64的x86_64的x86_64的GNU/Linux的洞察调试器断点不工作

我已下载了源 - 洞察力6.8-1a.tar.bz2,从ftp://sourceware.org/pub/insight/releases获得 配置,制造和安装。

我可以运行洞察力,但是当我尝试设置断点时,它们不会被击中。

这是我尝试过的: 1)通过鼠标点击程序集视图并从GUI中选择运行来设置断点。可执行文件运行到最后。控制台视图上的输出是“程序正常退出”。

2)通过鼠标点击源代码设置断点,并从GUI中选择运行。 Insight窗口全部消失(崩溃?)。 “分段故障”输出到终端。

3)从GUI中删除默认断点,并在控制台窗口中从gdb命令行设置断点。键入r运行。 Insight窗口全部消失(崩溃?)。 “分段故障”输出到终端。

如果我只是从终端运行gdb,我可以设置断点并逐步通过源文件。

我正在调试的文件是一本简单的asm脚本,取自一本书(汇编语言一步一步)。

我使用的构建文件的命令是: NASM -f ELF64 -g -F矮eatsyscall.asm LD -o eatsyscall eatsyscall.o

我使用打开洞察力的命令是: insight eatsyscall

有没有人知道这里会发生什么?或者任何人都可以建议我如何去调试这个问题?目前我有点卡住了。

我看到报道在网络上这种行为最近的事情是在这里: osdir.com/ml/debugging.insight/2008-09/msg00001.html

但不涉及共享库在我的情况。

+0

我得到了一个更新的源代码版本(insight-7.8),构建它并且工作正常。我仍然不知道原始版本出了什么问题,但是当我构建新版本时,它抱怨无法找到共享库 - 我必须设置LD_LIBRARY_PATH correcty。可能以前的版本是从某处找到一个不正确的库? – user1802664 2015-02-20 13:42:35

回答

1

我有同样的问题,为了解决使用侏儒作为调试信息格式即组装代码(如果使用NASM)作为

nasm -f elf -g -F dwarf anyfile.asm 

(的-g格式被设置为“刺”默认但GDB了解侏儒更好,你可以用-F开关更改)

现在链接对象代码(如果使用GNU的连接器)

ld -o executable_name anyfile.o 

作为调试格式,你现在可以设置断点。