debug assertion failed 调试解决方法
来源:互联网 发布:c语言中的完全数 编辑:程序博客网 时间:2024/05/13 06:26
错误提示:
Debug Assertion Failed!
Program: D:/wyuStud/debug/wyuStud.exe
File: afx.inl
Line:157
调试方法:
首先如果你用的是vc6的话:
1。按F5运行你的程序
2。在出错时,选择“重试”
3。按ALT+7调出“调用栈”窗口
4。双击从上往下的最近一个自己定义的函数,系统会自动把该函数所在的文件显示出来,此时程序就暂停在光标处。一般来说错误就出在这附近。你可以通过查看变量的值来确认。
具体事例:
按照上面的做法:弹出一个对话框:
点击函数:(注意一定是自己写的函数,不要去修改库函数)
错误原因:
目前只发现:使用了野指针。
跟踪代码并调试:(通过按照调试方法中描述的,点击自己编写的函数,然后逐个函数查找错误。我就是这么做的,然后发现了错误所在)
发现在函数U_Ptr::处有疑点;U_Ptr的定义如下:
- class U_Ptr{
- friend class HasPtr;
- int *ip;
- size_t use;
- U_Ptr(int *p): ip(p),use(1){};
- ~U_Ptr()
- {
- /************************************************************************/
- /* 这里不能用delete,因为ip是静态分配的内存,当程序运行完后,其内存自动取消
- 所以再用delete时,就是删除一个不存在的指针,从而报错*/
- /************************************************************************/
- delete ip;
- }
- };
其中的析构函数中有条指令:delete ip;出错,原因如注意所示,因为ip为静态分配内存,当程序执行完毕后,其所分配的内存自动收回,则ip就成为了一个野指针,若使用delete去删除,则错误。所以正确的做法就是将delete ip删除。
0 0
- debug assertion failed 调试解决方法
- Debug Assertion Failed解决方法! !!
- Debug Assertion Failed!解决方法详解
- C++中 Debug Assertion Failed! 代码调试
- VC:Debug assertion failed调试方法
- VC:Debug assertion failed调试方法
- Debug Assertion Failed
- debug assertion failed
- Debug Assertion Failed!
- Debug Assertion Failed!
- debug assertion failed
- Debug Assertion Failed!
- Debug Assertion Failed!【hlp】
- ActiveX Debug Assertion Failed
- Debug Assertion Failed!
- Debug assertion failed
- Debug Assertion Failed!
- 【c++】Debug Assertion Failed!
- MapServer6.4.1教程学习--标注地图(1-4)
- OpenCV学习笔记(四十六)——FAST特征点检测features2D
- EasyUI学习之RSSReader应用的学习笔记(一)
- 在openwrt平台,开发自己的模块
- MySql中的视图重写
- debug assertion failed 调试解决方法
- jquery input切换编辑和不可编辑模式,input自动获得焦点,遍历所有的子类标签
- Q1.5 String Compression
- MapServer6.4.1教程学习--添加栅格图层(1-5)
- 以太网卡
- 批处理批量编译java源文件,并有条件的自动执行
- 《天籁绝》——沉痛哀悼姚贝娜
- iOS 开发之故事版
- MySQL 触发器实现表同步