【问题标题】:What does 'Stop Debugging' do programmatically in windbg?'停止调试'在windbg中以编程方式做什么?
【发布时间】:2016-08-09 21:21:46
【问题描述】:

在打开转储、分析它然后“停止调试”后,我尝试复制由 windbg 完成的清理。

当我尝试在自己的程序中执行此操作时,我会泄漏大量内存。 我释放了我有 addref:ed 的 com 接口并调用 SymCleanup,但这不会取消映射加载的图像或释放 dbgeng 分配的内存。

DDK 中提供的示例在这里似乎没有提供更多信息。 这里有什么秘方吗?

我想要一个演示打开和关闭转储文件的示例,包括加载相应的图像和符号,而不会泄漏资源。

【问题讨论】:

  • 执行 (,,,,".opendump:...) ...... EndSession(,,,,flags...) flags = DEBUG_END_PASSIVE , DEBUG_END_ACTIVE_DETACH
  • 太棒了!非常感谢!

标签: windbg dbgeng


【解决方案1】:

@blabb 建议的 IDebugClient::EndSession(DEBUG_END_PASSIVE) 解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2021-07-27
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多