VS-Qt 如何处理 偶发、不清楚具体实现、需要经过长时间测试才能出现的bug

如题,正在使用VS2015 Qt5.9 c++,想要测试一个在使用应用过程中可能导致整个工作流程异常终止的bug,但是由于需要完成前几步才能到该步骤,测试时间较长,且并非每次出现,比较难复现,应该如何处理,了解过VS专业版似乎有个东西可以做进程快照?

一般对这种BUG处理方式有:

  1. 写运行日志,就是把程序运行每个关键的地方相关信息写到日志文件里,你还可以根据调试级别来决定输出信息的多少。比如程序正常运行时,你可以设定级别为INFO,那么只输出一些简略信息和错误信息;而当你设定级别为DEBUG时,则输出更详细的信息(例如输入参数,运行状态等等)。当程序运行异常或崩溃时,就可以可以检查日志文件来大概锁定出问题的代码,然后你就可以打断点调试你的程序,最终找到BUG。
  2. 创建MiniDump。当程序崩溃时,你可以在异常处理函数里调用系统API把程序崩溃时的运行状态写到一个文件里(MiniDump),然后你就可以用工具打开MiniDump文件查看运行栈、输入参数及出问题的代码等等。如果你要跨平台,可以考虑breakpad。如果只是在Windows里使用,可以看看SetUnhandledExceptionFilter(), MiniDumpWriteDump() MSDN文档。

我在qt开发时经常使用一个第三方log模块,在每个线程开始运行和结束运行他都会写入txt日志文件相关信息,软件挂了一般都是查日志然后复现该bug。如果编码没这么做,可能得看专业测试工程师给你意见了

可以这样来debug
一、首先右击工程名,选择最后一个选项“Properties”
二、然后选择Linker-System-Console即可。
运行程序时,会另外弹出一个dos命令框。

崩溃捕获那几个函数了解一下,找找示例代码
SetUnhandledExceptionFilter
MiniDumpWriteDump

代码里实现进程崩溃时,写入dmp文件,可以用vs打开调试,查看崩溃时的状态

bug不是每次出现的话,用按键精灵录制回放,自动操作多跑几遍

搞一台录像机,一个大的内存卡,对着拍。