VC 初步调试,发现某个类的构造函数进了,但是在左花括号的地方就卡住了,没有往后走。
一开始挺惊奇,过会儿就想到,类的构造函数里会被编译器插入一些没有显示初始化的成员的初始化语句。所以将 F10 改为 F11 调试。
慢慢似乎找到问题函数了,正准备再重开调试继续跟时,朋友表示按下 VC 的暂停键,照做,“我擦——”之后是崇拜的口水。
问题原因:while
的退出变量没有自增,导致死循环了。
总结:
程序卡在哪儿,基本就是死循环或者死锁。死循环的发现,可以看 CPU 占用来佐证。问题定位,暂停调试。
死锁的定位,可以看 stack,里边应该有 wait 之类的。