社区
C++ 语言
帖子详情
召唤调试达人,怎样知道函数推出时释放的是哪个对象?
csdn5211
2008-03-09 11:39:02
程序出问题了,单步跟踪,发现是在函数退出时自动释放栈上的对象的时候出现访存错误。可是这个函数里申请了很多对象,我怎么能知道释放哪个对象时出的错呢?
...全文
689
34
打赏
收藏
召唤调试达人,怎样知道函数推出时释放的是哪个对象?
程序出问题了,单步跟踪,发现是在函数退出时自动释放栈上的对象的时候出现访存错误。可是这个函数里申请了很多对象,我怎么能知道释放哪个对象时出的错呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
34 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
laowang2
2008-03-11
打赏
举报
回复
upup
LAN1403
2008-03-11
打赏
举报
回复
一个简单的办法: 在类的析构加上printf("ClassA destroy."); 就知道是哪个类析构出问题了。
不过最好还是加断点多跟进去看。
我曾经碰到过类似的问题,是vector的对象没有实现拷贝构造导致的。
vector的push_back()会使用拷贝构造,如果楼主用vector操作的对象有指针分配空间,并且析构的时候free这块指针,则可能出现这个问题。比如这样的代码:
class Test
{
char* data;
Test(){ data = malloc(128); }
~Test(){ free(data); }
}
int main()
{
vector <Test> v;
Test a;
v.push_back(a);
}
这样vector析构的时候会出错。
LAN1403
2008-03-11
打赏
举报
回复
多出了一个就把涵数的返回地址给改了
这样肯定是要出错的
多出了一个就把涵数的返回地址给改了
这样肯定是要出错的
多出了一个就把涵数的返回地址给改了
这样肯定是要出错的
夜雨_倚琴
2008-03-10
打赏
举报
回复
回21楼的,LZ都说了这个函数在他同事那里单独运行都没问题,所以我的观点是LZ系统的兼容性问题。
不妨在函数里面改用堆来申请空间,最后跟踪delete应该可以发现问题。
PS:也可能是编译器BUG也说不定。
taodm
2008-03-10
打赏
举报
回复
11楼是金玉良言
另外,楼主到了该看《重构》一书的时候了。
cad_vc
2008-03-10
打赏
举报
回复
在各个对象的西沟函数里,抓异常,写log或弹对话框.
try
{
...
}
catch(...)
{
//写log
//弹对话框
}
csdn5211
2008-03-10
打赏
举报
回复
感谢大家关注,现在加100分,稍后结贴。
ttlyfast
2008-03-10
打赏
举报
回复
看看是不堆栈烂啦啊
KG6kmm310
2008-03-10
打赏
举报
回复
多出了一个就把涵数的返回地址给改了
这样肯定是要出错的
Torch009
2008-03-10
打赏
举报
回复
可以写下日志之类的吧。
hugh_z
2008-03-10
打赏
举报
回复
关注ING
xiaonian_3654
2008-03-10
打赏
举报
回复
PS:也可能是编译器BUG也说不定。
==============================
不要动不动就说是编译器BUG,这个是很不负责任的说法。
按照你的说法,很明显是vector写越界了。
你最好能放出重现这个bug的最小代码,或者使用二分法,查找出错位置。
lin_style
2008-03-09
打赏
举报
回复
单步跟进去?
csdn5211
2008-03-09
打赏
举报
回复
___sbh_free_block执行不完,在~vector()这里面。
我啃
2008-03-09
打赏
举报
回复
那么估计是在操作vector是越界出错,建议加断点在操作vector处,然后检查,没有办法
退回去让she自己去检查,同时K她一顿,让她多写细粒度的函数复合,少些大杂烩~
csdn5211
2008-03-09
打赏
举报
回复
Unhandled exception : 0xC0000005 : Access Violation.
星羽
2008-03-09
打赏
举报
回复
你可以把出错信息发上来看看吗
csdn5211
2008-03-09
打赏
举报
回复
to 八音盒:
我也知道,可是这个函数不是我写的,她自己单独调试的时候没问题,加到我的系统里就这样了。
csdn5211
2008-03-09
打赏
举报
回复
to 星羽:
我知道基本就是这种情况,可是怎么才能知道哪个str多写了呢?
我啃
2008-03-09
打赏
举报
回复
70%可能是越界
一个函数中分配多个对象不是优良的粒度设计
加载更多回复(14)
非常详细的讲解车牌识别easypr
更新:基于keras-tensorflow的车牌识别,HyperLPR是一个基于Python的使用深度学习针对对中文车牌识别的实现,与开源的EasyPR相比,它的检测速度和鲁棒性和多场景的适应性都要好于EasyPR。 非常详细的讲解车牌识别EasyPR 我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/
文心一言《使用手册》,文心一言怎么用?
写一首山和树林的诗。下面的题帮我讲一下。撰写一篇有关大语言模型可信性的论文。请以唐代诗人的身份,在面对黄山云海
时
,根据已有唐诗数据,撰写一篇作者借由眼前景观感叹人生不得志的七言绝句,并严格满足七言绝句的格律要求。请以高中数学老师的身份,在高中课堂上,根据《高中数学必修一》内容,逐步解答学生关于集合的数学问题,并给出解题步骤及相关知识点。请根据已发表的关于大语言模型可信性的相关文献,撰写一篇系统梳理大语言模型可行性相关研究现状以及未来挑战的综述论文,并且严格遵循《计算机学报》投稿格式。
【AI】Deepseek从入门到精通(完整版)
2. 尝试点击「代码块」图标,输入「请用Python打印爱心图案」3. 将当前对话重命名为「测试练习」2. 拖拽上传文件(支持PDF/Word/Markdown)3. 设置调用关键词:「当问题包含'治疗方案'或'用药指南'
时
优先调用该库」kb.create(name="心血管疾病库",description="三甲医院内部诊疗标准",原句:“采用深度学习算法优化特征提取”修正后:“就像用智能筛子快速挑出⻩豆里的黑豆”
我在CSDN参与的3000个帖子
今日偶然翻到,感慨万千 1:申述:版主,是否扣了我的专家分? 2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,常用软件、游戏、精美图库下载,希望对网友有帮助!顺便散分! 6:VBA请教怎
MATLAB算法实战应用案例精讲-【数模应用】漫谈机器学习(五)
从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。让我们具体看一个例子。图4 房价的例子拿国民话题的房子来说。现在我手里有一栋房子需要售卖,我应该给它标上多大的价格?房子的面积是100平方米,价格是100万,120万,还是140万?很显然,我希望获得房价与面积的某种规律。那么我该如何获得这个规律?用报纸上的房价平均数据么?还是参考别人面积相似的?
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章