昨晚有客户反应,产品中的某个进程启动后1分钟内会消失,看了log未发现异常。
于是远程过去,想看本溃报告,很遗憾的是,没有生成任何本溃报告(我们用的是Debug系列的api写的Crash Reporter)。情急之下,唯有求助伟大的Windbg了。
attach,g,过一会儿,果然发现是有一处seh。但随即发现缺symbols,于是马上去发布服务器上找相应的pdb文件,放到远程上去,.reload,果然,未知地址被准确地翻译成代码中的标识符。
原来,崩溃的地方是动态加载的一个dll中的一个回调函数,怪不得没捕获到Crash Report。
总结下来,Release版本的PDB生成是个关键,单有Windbg仍旧是巧妇难为无米之炊啊。