关于异常调试问题

踏实每一步 2012-11-13 03:12:11
机器上装有vs2008,代码也在。编译好的程序运行出现异常,会跳出一个选择调试框,问下,要怎么直接定位到出错代码行。说明下,不是debug,release模式进行调试,而是编译的程序独立运行后出现异常,需要找出问题所在。
...全文
210 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
无言猪 2013-04-11
  • 打赏
  • 举报
回复
你可以在release版本也生成pdb文件,如果习惯windbg就用windbg配置好符号文件路径来调dump文件.如果不习惯就用vs,一样的设置好符号文件路径,随便把系统dll的符号文件也下下来,用open solution来打开dump文件,调试运行就OK了.当然要保证源文件在上次产生pdb文件后没有动过,如果动作可以设置不要求源文件与符号文件匹配也行. 弹出的对话框可能是有操作系统有某种机制检测到你的程序出现问题倒又没完全退出,你可以试下在异常捕获后写完dump文件自己ExitProcess,不必等操作系统来完成退出的处理.
踏实每一步 2013-04-11
  • 打赏
  • 举报
回复
引用 6 楼 lostying 的回复:
要看你运行的程序是debug版本还是release版本了,默认的设置里面release没有符号文件,就算你有源码也没法定位到具体的源码,只能看汇编.应用程序出错联系开发人员的对话框是系统弹的还是你自己的程序弹出的.
前面这种情况,我加了异常捕获可以在程序挂掉之前保存一个dump文件。后面应用程序出错联系开发人员的对话框,是程序跳出,我感觉不是程序异常引起,可能是线程开多后,系统资源不足,申请不到,就跳出这框。作为一个需要长期运行的程序,人不可能一直看着,所以最好有办法让它自己退出,后台维护程序才会检测到不运行而再启动。
无言猪 2013-04-11
  • 打赏
  • 举报
回复
要看你运行的程序是debug版本还是release版本了,默认的设置里面release没有符号文件,就算你有源码也没法定位到具体的源码,只能看汇编.应用程序出错联系开发人员的对话框是系统弹的还是你自己的程序弹出的.
踏实每一步 2013-04-11
  • 打赏
  • 举报
回复
还有一种情况,提示应用程序出错,联系开发人员。怎么让它不出现,程序直接退出?
tingyuyiye01 2013-04-11
  • 打赏
  • 举报
回复
表示可以学习一下
coyer 2012-11-14
  • 打赏
  • 举报
回复
不用管,出现异常对话框的时候,选择调试,会自动打开VC的,这个时候,和平时调试时一样的了。
KeepingStudyZXR 2012-11-14
  • 打赏
  • 举报
回复
我也碰到过,学习一下了。。。
踏实每一步 2012-11-13
  • 打赏
  • 举报
回复
不知道楼上的具体怎么操作?我现在异常跳出个异常框,我怎么才能定位到我代码行上?异常后dump文件在哪里
debugmonkey 2012-11-13
  • 打赏
  • 举报
回复
一般都是把windbg设置成默认调试器,这样异常了一般k查看调用栈即可。 如果是vs2008,理论上调用栈应该也有代码行。 这些的前提是,符号文件存在且匹配。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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