按Ctrl+F5运行测试程序时,弹出一个错误窗口问你是要“终止、重试、忽略”,却没写出错的地方,让人很是郁闷。按F5进行调试,往往错误又不出现了。
对于这种出现概率较少的bug,当在运行时弹出那个对话框时可以先别急着选择那三个选项,点击visualstudio菜单栏的debug->Attach to Process,开始对进程调试。
而此时一般进程正处于running状态,无法进行调试,点击debug工具栏的暂停按钮,就是两条坚杠的那个,然后此时编辑器会显示出程序暂停的位置,也就是出错的位置。
而这个出错的位置一般都是库函数或系统内核函数,基本看不懂,但是别急,程序会停留在这些函数里,那一定是自己程序的某个地方调用到这个函数里,那么怎么找到这个自己程序里的函数呢。
点击菜单栏debug->Windows->CallStack
在CallStack调试区会从当前出错的函数逐级往上跟踪,一直到mian(),__tmainCRTStartup(),mainCRTStartup(),及kernel32.dll里面。那么自己程序中的函数就会紧接着main()函数。
OK,顺滕摸瓜找到那个函数,看看出了问题什么吧。