Show HN:我为 Windows 原生 x64/x86 程序崩溃开发了一个事后调试器
Show HN: I built a post-mortem debugger for native Windows x64/x86 crashes

原始链接: https://www.forensicdbg.com

**ForensicDbg** 是一款适用于 Windows 的高级用户态事后调试器,配备了高性能引擎和直观且响应迅速的用户界面。通过利用 MCP 服务器,它允许 AI 工具直接与调试引擎交互,在提高分析准确性的同时大幅降低了 Token 成本。该平台利用数十年的行业专业知识来解读复杂数据。 该工具目前处于内测阶段。欢迎感兴趣的用户申请邀请,以参与并塑造平台的发展。 **案例研究示例:** ForensicDbg 最近识别出 `CTextWindowBase::SetSelectionBegin` 中存在一处空指针解引用错误。该 Bug 发生在反汇编面板尝试从 `GetLine()` 返回的 `nullptr` 中访问 `m_link` 时,此时窗口为空(例如在加载代码或符号之前)。修复方法是在 `CTextWindow.cpp` 中添加一个空值检查保护,以便在窗口为空时优雅地跳过选择链接更新,从而防止潜在的崩溃。

Sorry.
相关文章

原文

 

ForensicDbg gives AI tools access to its powerful debugging engine through its MCP server, greatly improving the quality of results and significantly lowering the token cost of tracking down your hardest to catch bugs.

​​

We are currently running a private Beta test. If you are interested in debugging and want to ensure ForensicDbg surpasses your needs, request an invite.

​

CTextWindowBase::SetSelectionBegin doesn't null-check the CRefPtr<CTextLine> returned by GetLine() before dereferencing it to fetch m_link. This is only reachable when the window has no lines (GetLineCount() == 0) at the moment of a click — here, a disassembly panel that hasn't yet had a function/frame's code loaded into it (no region, no symbol walk, no frame selected). The fix is to guard the GetLine() result for null in SetSelectionBegin (CTextWindow.cpp around line 559) and skip the selection-link update when the window is empty.

 

Advanced user-mode post-mortem debugger for Windows

 

MCP interface for automated crash analysis with AI tools

 

State-of-the-art UI built to be intuitive and responsive

 

Data is interpreted using decades of expert experience

联系我们 contact @ memedata.com