bycj.net
当前位置:首页 >> gDB调试段错误in FrEE () From /liB/x86_64%linux%... >>

gDB调试段错误in FrEE () From /liB/x86_64%linux%...

free了非法指针,详细检查你引用的指针是否是动态非配的并且没有被从其它地方释放过.

例如程序的可执行文件名称为Dome gdb Dome 进入gdb对话框.你要调试程序的某一段代码,在进入那段代码前打上一个断点.break filename:linenum 然后执行程序 run 此时程序开始运行,如果是GUI界面,你可以在界面进行操作,当这些操作调用断点后的代码时,程序会停下来,这是你可以输入命令进行调试了,next 2 //执行下面两行代码

1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况.这里贴一个对于“段错误”的准确定义(参考

一般是内存错误,数组越界,空指针 非法的指针类型转换 递归过多,比如 int main() {main();} 局部变量过大 int f() { int a[1000000];//需要用new } 等等

你好!段错误一般是内存访问错误,基本上我碰到的都是因为内存访问出错导致段错误.检查下指针使用.或者,把你的代码段贴出来.用codeblocks调试下吧gdb用的不太习惯记不住命令..打字不易,采纳哦!

用gdb调试工具.1、gcc -g 1.c2、执行 目的是产生core文件3、gdb ./a.out core4、where

(1)假设要debug的进程号为1000,运行如下命令:$ gdb -p 1000使用此命令即可使gdb附加到进程.(2)载入libpython脚本如果你的gdb是redhat或fedora等厂商修改过的,会有--python选项,使用此选项即可指定gdb启动时载入的python扩展脚本

有野指针操作吧.或是数组越界

错误 一般都是非法内存操作,例如数组越界,例如申请a[5],却访问到a[5]或者a[6],这也会有很多情况,可能是循环操作时循环变量控制有问题,可能是字符串拷贝时长度发生溢出指针指向了非法内存,例如申明一个指针,但是没有对指针进行初始化,直接就引用,或者引用里面的元素或者函数,或者没有分配内存就进行释放等,另外,申请内存还要检查是否申请成功,如果没有申请成功也会出现这种情况单步调试或者加打印信息,细心一点总可以找到错误的,注意编译成调试版本 如果是linux,可以产生core文件,从core文件查看出错的地方

相关文档
xcxd.net | jingxinwu.net | zmqs.net | qyhf.net | rjps.net | 网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com