有一天用vs2015调试之前的一个程序时,发现无法调试。一旦启动调试,就发现整个电脑动不了了,估计得过个10几分钟才反应过来,并且显示“调试器的工作进程(msvsmon.exe)意外退出。调试将中止。”
为了查看是不是vs2015的问题,打开另外一个工程,发现是可以调试的,说明不是系统的问题。
不过之前还可以调试,那为啥就突然不能调试了呢?上网上搜索,发现这个问题不多,解决办法也很有限,其中一个说安装了什么程序导致的,我仔细想了一下,我似乎没有安装什么程序,倒是卸载了几个有关vs旧版本的组件,难道是这个影响的?于是乎,我就重新修复安装了一遍vs2015,安装完后,发现问题依旧。
后偶然发现,在开始调试时,内存突然上涨到满,看如下图:
然后我就把任务管理器打开,切换到进程卡,观察是哪个程序占用了这么大的内存。
准备好后,就按F11开始调试,发现开始winmain()时,内存占用正常,结果一过winmain()中的主程序调用,内存立马占到满。说明估计是程序有问题导致的。
然后在程序的开始位置加断点逐步跟踪,终于发现是在读取配置文件时失败,导致后面内存分配时使用了超大值。进一步跟踪,发现是调试时的程序工作目录为当前的工程目录,而这个目录中没有对应的配置文件,然后设置工作目录到调试的程序目录,然后再调试,一切正常。
不过有点奇怪的是,这个调试的各选项我不记得有修改,工程目录里的配置文件目录我似乎也没有删除过,它咋就变成了这样呢?也许是上班上得脑残动了它自己也不记得了,反正问题终究还是解决了,就当是学习了