社区
C++ 语言
帖子详情
召唤调试达人,怎样知道函数推出时释放的是哪个对象?
csdn5211
2008-03-09 11:39:02
程序出问题了,单步跟踪,发现是在函数退出时自动释放栈上的对象的时候出现访存错误。可是这个函数里申请了很多对象,我怎么能知道释放哪个对象时出的错呢?
...全文
740
34
打赏
收藏
召唤调试达人,怎样知道函数推出时释放的是哪个对象?
程序出问题了,单步跟踪,发现是在函数退出时自动释放栈上的对象的时候出现访存错误。可是这个函数里申请了很多对象,我怎么能知道释放哪个对象时出的错呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
小米或
推出
游戏机的5个原因
随着2014年中国游戏机禁令的解除,小米等科技公司看到了进入家庭游戏机市场的机遇。本文分析了小米进军游戏机市场的五大可行性因素,包括巨大的市场需求、政策支持、与小米现有产品的协同效应等。
解密Kimi+智能体生态:当AI开始‘分身有术’
本文深入剖析Kimi+智能体生态的核心技术架构与应用范式,重点涵盖智能体模块化封装策略、@动态
召唤
机制、结构化提示词工程、生态平台化演进及低代码工作流构建方法。强调其通过上下文隔离、知识图谱路由、垂直领域能力封装等关键技术,实现多智能体协同与专业化任务高效执行,在旅行规划、电商运营等场景中显著提升任务完成率与人效。
【收藏】Workflow=预制的Agent?AI应用开发中你必须
知道
的真相
本文剖析了Workflow与Agent的本质关系,指出Workflow是将Agent最优执行路径固化的标准化流程,适用于高频、高质量要求的任务。通过小红书笔记生成案例,展示Workflow在内容创作中的稳定性与一致性优势,并对比Coze与Dify平台的实践差异,为AI产品经理提供从灵活到固化的设计思路。
AI真好玩系列-免费解锁 Google Gemini 的几种方式
本文介绍了三种免费使用Google Gemini的方法:企业版Gemini可享30天免费试用,适合职场应用;Google AI Studio为开发者提供顶级模型免费调用与Prompt
调试
;个人版Gemini支持账号直登免费使用,并有机会获取高级版1个月试用。覆盖办公、开发与日常生活场景。
天际省
时
尚指南:用控制台代码搭配10套高颜值装备组合(含婚礼/盗贼/法师套装)
本文围绕《上古卷轴5:天际》中10套高颜值主题装备组合展开,涵盖婚礼、盗贼、法师等典型职业/场景,并为每套提供精确的控制台物品ID代码及实用指令。重点包括装备属性优化、潜行/魔法/防御增益机制、DLC兼容性说明以及视角、天气、UI等辅助
调试
命令,服务于玩家高效构建个性化外观与功能性角色。
C++ 语言
65,210
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章