在测试环境中,不能模拟出所有的生成环境。即使你的程序在测试环境中跑的很顺畅,并且你已经模拟大多数生产环境中可能出现的状况,并为之提供了解决方案。但是,你不能保证程序在生产环境中不出问题。更糟糕的是,生产环境出了问题,你还不能再测试环境中模拟出来。所以,要是能在生产环境中调试最好了,实在不行的话能提供生产环境中程序崩溃的信息也是好的。
首先,能拿到生产环境程序的崩溃信息,最好的方式就是DUMP啦。网上有很多这方面的教程,这里就不再赘述。但是不是所有程序都能同DUMP文件这种方式捕获到有用的调试信息。比如,通过golang写的程序,调用c++写的DLL库。这种情况,dump文件就不能捕获有效的调试信息。
其次,通过OutputDebugString()
函数输出调试信息,用Dbgview.exe(下载地址)接收调试信息(OutputDebugString输出的调试信息会被Dbgview.exe捕获)。
最后,如果觉得安装Dbgview.exe比较麻烦的话,最后就只有使用杀手锏–日志。通过日志文件记录执行过程。即使程序崩溃后,可以查看程序执行日志。
线上调试动态库 c++ 代码 经验分享
最新推荐文章于 2024-04-03 19:56:15 发布