状况:我的程序调用别人的库做 文件写入工作。
在这一过程中出现异常,程序崩溃。
经反复检查,认为自己的程序没有错,但无法判断在别人库里哪里有错。
使用windbg绑定程序进程进行调试,可以在发生异常时候,获取函数调用顺序,进而知道在哪个函数出了异常。
由截图可见,在我的程序函数CEncryptionUtils::write_user_certs调用别人的MWHwMan库的SDFP_Close函数中调用另一个人的sdfp_lib库中的SD_SafeWrite函数过程中调用TGWriteDevInfo函数时发生了 堆异常…………………………
所以我找到sdfp_lib库作者,刚好是我同事,找他确认这个函数……然后解决问题……………………
上文说的只是调试这种问题的一种思路
可以说,如果没有windbg我是永远不可能解决这个问题的
至于windbg的具体用法就不赘述
或有时间时候再赘述