无 dmp 文件的情况下使用 windbg

项目线上出现了闪退问题,查看日志发现是 sentry 模块出问题了

无 dmp 文件的情况下使用 windbg

因为用户电脑上没有 pdb 文件,所以无法加载具体函数的调用位置,只能手动去计算

具体步骤是:在 windbg.exe 中加载 sentry.dll 和 sentry.pdb 文件后

使用 lm 命令行拿到 sentry 模块的基地址

lm vm sentry

  无 dmp 文件的情况下使用 windbg

有了基地址,就可以依靠偏移地址算出函数崩溃时的上下文

比如图上的 sentry_capture_event,

04cd0000 + 2363

上面是 16 进制,还要加上偏移量,也就是 10 进制 115

80,552,803 + 115

最后得出:4CD 2363

使用 u 命令跳到相应的上下文即可

无 dmp 文件的情况下使用 windbg

可以看出内部堆栈并没有给出太多有用的信息,所以我们只能通过崩溃时调用的函数来寻找问题

在经过一段时间的寻找,确认崩溃是发生在 sentry_get_modules_list 的内部,这也符合崩溃时日志给出的信息

无 dmp 文件的情况下使用 windbg

 在调用 load_modules 时崩溃了,进入函数内部进一步排查后发现是 LoadLibraryExW 加载文件时发生了崩溃

无 dmp 文件的情况下使用 windbg

暂时的解决方法是先将 load_modules 注释掉

网上有类似的 bug 提交:

原文链接: https://www.cnblogs.com/strive-sun/p/16459682.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    无 dmp 文件的情况下使用 windbg

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/404474

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月25日 下午4:35
下一篇 2023年4月25日 下午4:35

相关推荐