Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ eclipse调试模式下的GDB找不到stdlib/rand.c_C++_C_Eclipse_Debugging_Gdb - Fatal编程技术网

C++ eclipse调试模式下的GDB找不到stdlib/rand.c

C++ eclipse调试模式下的GDB找不到stdlib/rand.c,c++,c,eclipse,debugging,gdb,C++,C,Eclipse,Debugging,Gdb,我正试图将gdb与eclipse cdt一起在ubuntu上运行,以开始调试一些简单的程序。因此,我采取了我认为必要的步骤来运行它: 一,。创建一个可执行项目 二,。编撰 三,。跑 四,。创建文件.gdbinit并将其放置在主项目文件夹中 五,。设置一些调试器: 五,。我还试图找到一个类似以下内容的文件: set schedule-multiple dir ~/gcc_build/4.7.2/build/gcc dir ~/gcc_build/4.7.2/gcc dir ~/gcc_buil

我正试图将gdb与eclipse cdt一起在ubuntu上运行,以开始调试一些简单的程序。因此,我采取了我认为必要的步骤来运行它:

一,。创建一个可执行项目

二,。编撰

三,。跑

四,。创建文件.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
然后单击应用和调试:

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的问题:

但现在出现了一个不同的错误:

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)
。。。然后单击您未编译的每个项目,用鼠标右键选择delete-但别担心,它不会删除您的项目,只会将该项目的附件添加到调试器模式

然后重新启动eclipse。当您再次尝试在调试器模式下运行时,一切都将比以前顺利得多。

步骤1:

转到下载glibc

步骤2:


在本地解压,每当eclipse提示找不到。。。c,只需将该文件加载到eclipse中。它会起作用的。

那之后你就不能继续走下去了吗?这看起来不像撞车,只是一个警告。当您尝试单步执行时会发生什么?我认为这就像F6。重点是,并非所有库都有源代码是正常的。这种事经常发生。gdb通常会在您真的想调试stdlib的情况下发出该消息,但无论如何您都应该能够继续。最坏的情况是,它会运行asm并向您显示反汇编。您是否检查聊天记录?
Debug Configurations > C/C++ Applications: (drop down it)