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中。 它会工作。