调用DebugActiveProcess()后继续运行进程

时间:2011-11-26 22:11:03

标签: debugging winapi

我正在尝试构建某种统计分析应用程序,其操作如下:

  1. 将自己附加到正在运行的进程( DebugActiveProcess())。
  2. 进入某种循环:
    • 命令进程中断( DebugBreakProcess())。
    • 保存它的调用堆栈(或只是分析它)。
    • 继续该过程( ContinueDebugEvent())。
  3. 从流程中分离( DebugActiveProcessStop()
  4. 我无法弄清楚如何做到这一点。 我知道我必须以某种方式使用 WaitForDebugEvent()机制,但我不知道如何。

    此外,我发现在调用 DebugActiveProcess()之后,该进程暂停,但为了能够调用 ContinueDebugEvent(),我必须向它提供信息仅在 WaitForDebugEvent()返回后才可用。

    我该怎么办?

1 个答案:

答案 0 :(得分:0)

检查:

https://breakingcode.wordpress.com/2009/08/05/dbg_continue-vs-dbg_exception_handled/

DBG_EXCEPTION_HANDLED

谈到酒,浏览源代码,我发现了其他几个“未记录”状态代码:

•DBG_TERMINATE_PROCESS
•DBG_TERMINATE_THREAD
•DBG_CONTROL_C
•DBG_CONTROL_BREAK
•DBG_COMMAND_EXCEPTION

但是,Windows XP似乎不支持后三个。