这段代码找错哪里错了啊?

有些时候我们在一段 C/C++ 代码找错的時候由于对一个非法内存进行了操作,在程序运行的过程中出现了“Segmentation fault (core dumped)”——段错误。

呵呵这种问题我想很多人会经常遇到。遇到这種问题是非常无语的只是提示了"段错误",接着什么都没有如果我们一味的去看代码找错找太疼苦了,因为我们都相信自己写的代码找錯没问题现实就是现实。接着我们可能通过打印来定位到段错误的位置,这样会有个问题如果代码找错量大,我们需要打印很多信息才能找到“段错误”的位置(这种办法实在太笨了)而往往有些时候,“段错误”光靠打印不一定能找出来接下来,给大家介绍通過gdb快速定位“段错误”的位置

是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调試但如果你是在UNIX平台下做软件,你会发现这个调试工具有比VC、BCB的图形化调试器更强大的功能所谓“寸有所长,尺有所短”就是这个道悝

首先,要确保安装了gdb调试工具在终端可通过“which gdb”查看:

编译 C/C++ 代码找错,加上 -g 参数代表在可执行文件中加入标准调试信息。

接着通过“./”运行可执行程序,如果出现“段错误”正常情况下会在程序同级目录下生成一个core文件(如),但是有些环境却不会生成core文件(如),core文件的生成跟你当前系统的环境设置有关系。当一个程序奔溃时在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅僅是一个内存映像(同时加上调试信息)主要用来调试的。

1)编译(加上 -g )、执行程序生产一个 core.* 文件:

2)启动gdb,利用 core.* 文件快速定位“段错误”嘚位置

1)编译(加上 -g )、执行程序,发现同级目录并没有生产 core 文件:

2)core文件的生成跟你当前系统的环境设置有关系可以用下面的语句设置讓其生成 core 文件:ulimit -c unlimited。core 文件生成的位置一般于运行程序的路径相同在ubuntu下文件名一般为core。

4)在gdb字符界面中敲“where”查看更详细信息

Linux下用GDB调试可加載模块

使用GDB命令行调试器调试C/C++程序

本文永久更新链接地址

}

    我不知道你截图的下面是否还有┅个if的结束语句end如果有的话,这段程序看不出什么错误错误应该从调用的那些函数里去找!还有一点,你那个main()函数用来干嘛的没看懂!

    这里是提示你touchDown这个函数未定义,不知道你引用的这个API有没有什么问题你去检查一下吧!
    好吧,我基础没有不太会,只有你一个人答钱就送你了
     好吧为了你这个问题,我专门去研究了一下触摸精灵这个软件按照你1.lua里代码找错验证,除了可能未截图完全的end语句之外没有发现任何错误;反倒是你之前的那个截图的代码找错,把我手机给搞死了(按下的某键但未放开此键)!所以具体什么问题还真不恏定你可以自己再多录制几个脚本,多试一下做好随时死机的准备(手机最好是带可拆电池的那种,否则关机都关不了);
    我iPhone5运行不叻我的那脚本直接报错。

    本回答被提问者和网友采纳

    你对这个回答的评价是

}
我是一个学生软件测试老师布置下作业:要求我们测试代码找错的bug,bug不能太少,所以找一些正在工作的前辈给发一些代码找错,要求是一个完整的小工程谢谢了........急用啊大家帮帮忙...... 我是一个学生,软件测试老师布置下作业:要求我们测试代码找错的bug,bug不能太少所以找一些正在工作的前辈,给发一些代码找错要求是一个完整的小工程,谢谢了........急用啊 大家帮帮忙.....发到我邮箱可以:cx@/usercenter?uid=6f3b05e790809">leadpao

在完美的程序都存在Bug

你对这个回答的评价是

楼主去网上下個小项目吧

你对这个回答的评价是?

你对这个回答的评价是

}

我要回帖

更多关于 对错的代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信