TimothyQiu's Blog

keep it simple stupid

程序崩溃的善后工作

分类:技术

说来,写 C/C++ 的程序,由于指针的存在,程序崩溃什么的也就没什么大惊小怪的了。人非圣贤,孰能无过嘛,而且个人觉得程序崩溃比出现错误的结果好调试多了:在 Visual Studio 里 Debug 版本 F5 调试运行直接可以断在崩溃的地方,方便调试。但 Release 版本就没这么幸运了 :(

如果说单纯是是调试 Release 版本,我只用过《游戏之旅》中介绍的勾选 Linker 选项中的 Generate Map File,然后通过崩溃提示信息中提供的 EIP 查这个 Map File 找到崩在哪个函数里,兴致高一点的根据反汇编一步步走下去兴许还能知道是崩在哪句上 :)

不过说到最终交付出去的程序,面对可能存在的各种未知问题,还是生成 Dump 文件,把崩溃那一刻的信息写进文件以供日后分析比较靠谱。

阅读剩余部分...

Visual C++ 调试模式 F12 中断

分类:技术

最近写毕业设计,遇到个问题:在 Debug 模式运行程序时,一按 F12 就会提示「User breakpoint called from code at 0xXXXXXXXX」,完全无视我对 F12 的按键处理 :(

经过 Google,发现微软表示,这恼人的东西其实还是一项「功能」,方便在需要时立即中断程序。擦,这不坑爹么……

要解决这个「功能」,可以打开注册表编辑器,在 HKLM\Software\Microsoft\Windows NT\CurrentVersion\AeDebug\UserDebuggerHotkey 键设为非零,重启后在调试模式按 F12 就不会再触发中断了。