标题:gdb 调试程序出现的错误
只看楼主
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
结帖率:87.5%
已结贴  问题点数:100 回复次数:32 
gdb 调试程序出现的错误
要调试的程序如下,环境:win7(64bits)+C-Free4.0+MinGW2.95+gdb5.2.1
#include<stdio.h>
int main(void)
{
    int a[5],i;
    printf("Please input integer:\n");
    for(i=0;i<=4;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<=4;i++)
    {
        printf("%d\n",a[i]);
    }
    return 0;
}
出现的错误是:
Error: dll starting at 0x76f21000 not found.

Error: dll starting at 0x75fd1000 not found.

Error: dll starting at 0x76f21000 not found.

Error: dll starting at 0x77041000 not found.



Program exited normally.

无论是什么程序,运行后,都出现这样的提示信息,这是什么原因引起的?网上搜索了一下没有想要的答案诶,就看到一个在stack over flow上的,说是查找的.dll文件不正确(看不太懂~~全英文)

网址:http://

希望能解决下


[ 本帖最后由 wssy213 于 2014-9-22 22:25 编辑 ]
搜索更多相关主题的帖子: return include starting 
2014-09-22 22:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
基本上这类问题都是没养成检查自己代码是否达到预期目的造成的

授人以渔,不授人以鱼。
2014-09-22 23:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:50 
其实,如果不查书、不做试验,你能一下子确认&a[i]到底是&(a[i])还是(&a)[i]吗?根据你运行出现的崩溃描述,明显就是后者情形(在VC下运行正常,是前者,当我把代码改为后者时就出现栈溢出错误了,描述跟你说的相近)。写代码,对没把握的东西,多写一个括号不会坏的,也不影响什么,怎么总不养成好习惯呢,恐怕是不弄点玄虚不让人费解一下不显本事的心态作怪。

[ 本帖最后由 TonyDeng 于 2014-9-23 09:44 编辑 ]

授人以渔,不授人以鱼。
2014-09-23 09:37
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:50 
是的 要养成好习惯
2014-09-23 09:52
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
得分:0 
以下是引用TonyDeng在2014-9-23 09:37:44的发言:

其实,如果不查书、不做试验,你能一下子确认&a到底是&(a)还是(&a)吗?根据你运行出现的崩溃描述,明显就是后者情形(在VC下运行正常,是前者,当我把代码改为后者时就出现栈溢出错误了,描述跟你说的相近)。写代码,对没把握的东西,多写一个括号不会坏的,也不影响什么,怎么总不养成好习惯呢,恐怕是不弄点玄虚不让人费解一下不显本事的心态作怪。


恩 很感谢T版的教诲!最近有点浮躁了,心静不下来,哎

现在问题还没有得到解决(已经加上括号,还是有问题;我觉得问题不是出在这,因为[]优先级比&优先级高,不加括号也是可以的;不过我对T版所说的“写代码,对没把握的东西,多写一个括号不会坏的,也不影响什么”是很赞同的,而我这方面有待改进:))。

要怎么解决呢?

为啥&a[i],&(a[i]),(&a)[i],引用之后就变成&a,&(a),(&a)了


[ 本帖最后由 wssy213 于 2014-9-23 11:28 编辑 ]

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-23 11:24
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
我不知道你那编译器怎么回事,无法重现你的现象。你单步跟踪,看到哪一行崩溃,问题就在哪一行。

[ 本帖最后由 TonyDeng 于 2014-9-23 11:31 编辑 ]

授人以渔,不授人以鱼。
2014-09-23 11:30
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
得分:0 
用编译器编译后运行很正常,说明程序本身应该是没问题的,但在gdb中对编译程序生成的可执行文件进行调试时,输入run,出现上述错误

在gdb中,我的步骤如下:

1、输入list,查看源代码,正常;
2、输入break 5(该行代码为printf("Please input integer:\n");),提示信息:Breakpoint 1 at 0x40123f: file //F/C/C-Free Standard/temp/未命名2.c, line 5.,(断点应该设置成功了);
3、输入run,然后输出:Starting program: F:\C\C-Free Standard\temp/未命名2.exe,gdb界面弹出上述我所贴出的错误提示;
4、在gdb界面输出错误提示的同时,弹出cmd窗口,界面上输出:Please input the integer: ,并且提示输入,进入了for循环中(我在for循环中加入一条输出语句测试得知的),并未在断点处中断;
5、正确输入数据后,程序并未给出结果,自动退出,gdb界面输出:Program exited normally.

以上是全过程


[ 本帖最后由 wssy213 于 2014-9-23 12:34 编辑 ]

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-23 12:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
正常运行没错,在调试器环境下出错,说明是调试器干扰了程序。升级一下gdb的版本,据说某个版本有问题。没事运行正常,你用调试器弄这个干什么呢。

授人以渔,不授人以鱼。
2014-09-23 12:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
能够少用debug版,都尽可能不用,在release版本下测试和调试程序。不要说gdb,在vs下也是这样,编译后添加的调试代码往往干扰真实环境,结果在release模式不是那么回事,并没有解决问题。用最原始的方法调试程序,高级的调试器不用也罢。不过我没想到你这么简单的代码也能出问题,晕。

[ 本帖最后由 TonyDeng 于 2014-9-23 12:48 编辑 ]

授人以渔,不授人以鱼。
2014-09-23 12:46
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
得分:0 
以下是引用TonyDeng在2014-9-23 12:40:44的发言:

正常运行没错,在调试器环境下出错,说明是调试器干扰了程序。升级一下gdb的版本,据说某个版本有问题。没事运行正常,你用调试器弄这个干什么呢。

听说这个很强大,就想去试试,因为在某些情况下,比如在for循环中,我想知道下某一次循环中的某一变量的值,用原始的方法比较麻烦,而且我的IDE不知道怎么搞的,图形化调试用不了。不过~~用起来不熟,更加的麻烦,这不,想用个简单的程序来练练手吗。

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-23 13:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-436462-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.588562 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved