目录
1、使用VS调试代码出现Stack overflow线程栈溢出时,VS直接退出调试,看不到异常发生时的函数调用堆栈,可以尝试用Windbg去查看堆栈
2、用VS调试代码出现异常时,看不到有效的函数调用堆栈,可以尝试用Windbg去动态调试查看堆栈
3、程序启动时报找不到dll库或找不到接口,或者动态加载的dll库加载失败,可以使用Dependency Walker、Process Explorer等工具去排查
4、研究其他软件在实现某一功能时都调用哪些系统API函数以及调用这些函数传入了什么参数,可以尝试用API Monitor工具去监测
5、当程序发生闪退时,不一定是程序中发生了崩溃,可能是代码中检测到了问题,直接调用abort或exit强行退出了程序
6、程序UI界面出现卡死或点不动,可能是窗口被disable了,也可能是代码中出现了死循环,也可能是发生了多线程死锁
7、程序发生异常崩溃时,程序中安装的异常捕获模块没有捕获到,可以尝试用Windbg动态调试去捕获异常
8、程序发生异常崩溃时,没有生成dump文件,可以尝试到系统应用程序日志中查看系统有没有生成dump文件
9、程序UI界面显示异常或者绘制异常时,可能是GDI对象发生泄漏导致程序进程占用的GDI对象接近上限导致的
在开发调试C++软件的过程中会遇到各式各样的问题,通过排查这些项目问题可以积累大量的实战排查经验和处理技巧,本文对这些经验和技巧做个总结和分享,以供大家借鉴或参考。