![](https://img-blog.csdnimg.cn/direct/a22dd49e01a140798a2629c197ca65a9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Debug
文章平均质量分 94
调试,是学习操作系统、开发语言的必备技能
0x0007
everything
展开
-
WinDbg 调试实战入门 - 调试第三方程序(记事本)
调试信息的丰富度和易读性主要依赖于符号文件,调试器需要符号文件来获取有关代码模块的信息,例如函数名称和变量名称。如果有符号文件,则后续的工作难度会大大降低。 本篇的调试流程简单,但覆盖了符号配置、断点设置、线程切换、查看堆栈这些基本的操作。Windbg 的命令十分强大,参数也很丰富,我们将在后续逐步学习掌握。原创 2024-05-30 06:15:00 · 2316 阅读 · 0 评论 -
WinDbg 源码级调试 C++ 程序
本篇作为 Windbg 调试 C++ 源码的抛砖引玉,希望能够给为各位对 C++ 细节有研究兴趣的同学一个不同的角度。Windows 调试和Windbg 工具本身的使用又是另外两个浩瀚的领域,学无止尽,共勉!原创 2024-05-16 17:18:43 · 1314 阅读 · 0 评论 -
翻译《The Old New Thing》- The case of the exception that a catch (…) didn’t catch
客户修复了bug但程序仍崩溃。分析发现,尽管异常被捕获,但由于两个同时发生的`E_ACCESSDENIED`错误,系统错误地匹配了异常堆栈,导致真正的问题未被正确识别。原创 2024-06-13 17:23:19 · 834 阅读 · 0 评论 -
翻译《The Old New Thing》- Psychic debugging: The first step in diagnosing a deadlock is a simple ...
本文通过一个案例展示了如何诊断程序中的死锁问题。作者利用线程堆栈跟踪信息,分析了两个线程之间的相互等待关系,揭示了发送消息时持有临界区导致的死锁。文章指出,避免在发送消息时持有资源是防止死锁的关键。原创 2024-05-28 09:55:57 · 582 阅读 · 0 评论 -
翻译《The Old New Thing》- How my lack of understanding of how processes exit on Windows XP forced a ...
p=26983Raymond Chen 2007年05月04日。原创 2024-05-17 10:42:43 · 534 阅读 · 0 评论 -
翻译《The Old New Thing》- What is the underlying object behind a COM interface pointer?
Raymond Chen在这篇文章中分享了在调试COM接口时确定底层对象的技巧,包括如何使用调试器命令和一些简单的数学来调整指针,以便正确地查看对象的内容。他还提到了一些在调试过程中应该注意的事项,比如vtable的位置、引用计数的值,以及字符串成员的内容。原创 2024-05-17 10:30:29 · 907 阅读 · 0 评论 -
翻译《The Old New Thing》- Identifying an object whose underlying DLL has been unloaded
本文通过实例教学如何诊断程序崩溃问题,特别是当涉及到动态链接库(DLL)被卸载时。作者利用调试器识别出虚方法调用、vtable位置、以及DLL卸载的迹象。通过将模块作为转储文件加载,计算vtable地址的偏移,并最终确认了崩溃的原因是由于DLL被错误地卸载,而程序仍尝试访问其资源。原创 2024-05-17 10:19:07 · 988 阅读 · 0 评论