为什么设置断点不报错,不设置断点就报错呢。

ecjtu5208 2010-10-20 05:02:48
一直对于Access violations 问题很是郁闷,每次我都很尴尬。老大们来个详细介绍吧。
本来想贴代码,但 因为代码很多,所以不好贴出来。
是这样的一个情况,程序调式的时候,报错之后,IDE指在了一句代码处,然后我就在那句代码处设置断点,再运行,却不报错了。
由于对内存不大熟悉,还望老大们帮忙。
错误提示:project xxxx raised exception class EAccessViolation with message 'Access violation at
address 00403FB3 in module 00000012

有老大说用map文件去找那个code row,可是我按那个方法貌似没成功。
...全文
516 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
金卯刀 2010-10-20
  • 打赏
  • 举报
回复
你应该在出错代码的上一行设置断点...
SQLDebug_Fan 2010-10-20
  • 打赏
  • 举报
回复
访问内存出错还有一个利器,那就是FastMM,它可以把你申请、释放、访问违规的堆栈都打出来,很好用,楼主试一下。
ecjtu5208 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bluekitty 的回复:]
设置断点后是运行到断点那里没有报错还是继续运行也不报错了?应该只是到中断没有报错把,这种内存读写违例编译器是没法追踪错误的,它停得那个地方不一定就是出错的地方,vc++这点还是比较实在,它只提示可能在哪里哪里出现非法访问,但也不能精确定位。可以打开看看汇编代码找到出错点最近的一条语句试试。
[/Quote]
恩。。。。。
自己再看看。
dd_zhouqian 2010-10-20
  • 打赏
  • 举报
回复
EurekaLog
  • 打赏
  • 举报
回复
设置断点后是运行到断点那里没有报错还是继续运行也不报错了?应该只是到中断没有报错把,这种内存读写违例编译器是没法追踪错误的,它停得那个地方不一定就是出错的地方,vc++这点还是比较实在,它只提示可能在哪里哪里出现非法访问,但也不能精确定位。可以打开看看汇编代码找到出错点最近的一条语句试试。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧