多线程调试问题

 

今天碰到一个相当奇怪的问题,在原组件基础上增加一部分功能之后,另一套组件中,一个原本稳定的功能出现了异常断点,但是异常模块是系统的kernal.

但是表面上看不出任何问题,只是在特定操作之后,特定的地方必定会崩溃。

突然有些迷茫。

这个时候,能够依赖的只有经验了。

面对概率性的经验,最先现去尝试的常常是简单的方式,然并卵。

在几乎可用的方法都失败之后,想到了必杀技:在可能出现问题的地方提前断点,开始单步(哈哈 其实很直接的方法,有时候运行时断点的地方就是问题的第一现场,单步几乎是不用来找第一现场的,而是用来调试具体事发原因的)。

意想不到的结果出现了,最终还是自己写的代码导致了问题发生:

 

在断点的地方并没有立即崩溃,而是继续走,一直到另一个组件创建,并调用接口之后才挂在了原断点的位置。

 

因为用的是vs2019,有些地方很让人奇怪,一个地方错误,会弹N个错误,也许,这也是类似的逻辑导致的问题吧。

接下来的事情就简单许多了。对症下药解决问题。

posted @ 2020-01-13 16:17  IceArrow  阅读(307)  评论(0编辑  收藏  举报