eclipse调试模式下的GDB找不到stdlib / rand.c
我试图让gdb在ubuntu上运行eclipse cdt来开始调试一些简单的程序。 所以我做了必要的步骤以使其运行:
1.创建可执行项目
2.编译
3.跑
4.创建文件.gdbinit并将其放在主项目文件夹中
5.设置一些调试器配置 :
5.我还试图找到一个看起来像这样的.gdbinit文件:
set schedule-multiple dir ~/gcc_build/4.7.2/build/gcc dir ~/gcc_build/4.7.2/gcc dir ~/gcc_build/4.7.2/gcc/cp dir ~/gcc_build/4.7.2/gcc/lto source ~/gcc_build/4.7.2/build/gcc/gdbinit.in
但是我的计算机中没有发现类似的东西,即使在做了以下情况之后:
# find / -name .gdbinit
所以,我的文件.gdbinit最终得到了简单的内容 – 是的只有:
set new-console on
然后我点击了Apply和Debug:
gdb按预期开始正常工作。 我按下“step over / F6”按钮,调试器逐步跳过代码。 直到它到达命令rand()并且gdb挂起并显示消息:
Can't find a source file at "/build/buildd/eglibc-2.19/stdlib/rand.c" Locate the file or edit the source lookup path to include its location.
因此,我也试图找到rand.c来更新此路径以包含其位置,但未成功:
# find / -name rand.c # find / -name stdlib
在来自GDB的错误消息抱怨rand.c丢失之后,我试图继续踩…从那时我重新启动调试时禁用了步进模式:
是否发生此问题是因为我的文件.gdbinit的某些设置丢失了? 或者一些GDB如何无法从c99的stdlib中找到rand.c? 当我编译并运行程序时,它运行得很好。 只有当我尝试启动调试器时才会发生GDB崩溃。
更新:运行命令后,我得到了丢失的rand.c问题:
# apt-get install libc6-dbg # apt-get source libc6
但现在出现了一个不同的错误:
Can't find a source file at "/build/buildd/eglibc-2.19/csu/libc-start.c" Locate the file or edit the source lookup path to include its location.
我还应该为gdb安装该库吗?
所有建议都非常感谢。
从我在你的描述中看到的…看你发布的第4和第5张图片,你做了所有必要的步骤。
但是,在我看来,您的GDB附加到多个项目。 这意味着除非你真的需要,我强烈建议你选择你当前没有调试的所有项目,并从调试器模式中删除它们。 所以,我的建议是,在你完成了迄今为止所做的所有步骤之后,继续:
Debug Configurations > C/C++ Applications: (drop down it)
…然后点击你没有编译的每个项目,用鼠标右键选择“删除” – 但不要担心,它不会删除你的项目,只会删除项目附件到调试器模式。
然后重启日食。 当您再次尝试在调试器模式下运行时,一切都将比以前运行得更顺畅。
步骤1:
转到https://www.gnu.org/software/libc/下载glibc。
第2步:
在本地解压缩,每当eclipse提示“找不到… xxx.c”时,只需将文件加载到eclipse中。 它会工作。