Re: 关于DebugActiveProcess

《软件调试》答疑

关于DebugActiveProcess


落英缤纷yhj 2011-08-18, 18:47 下午
   使用DebugActiveProcess 将调试器附加到已有进程。这个API我在WindowsXP上可以正常使用,但是同样的代码在Win7上就无法运行,总是返回0,我想应该是权限的问题,请问一下如何在win7上使用这个函数,谢谢。

Re: 关于DebugActiveProcess


格蠹老雷 2011-08-19, 22:39 下午
附加到哪个进程?GetLastError()...

Re: 关于DebugActiveProcess


落英缤纷yhj 2011-08-20, 14:55 下午
调用的方式是 DebugActiveProcess( XXX ),附加到记事本进程,函数返回0,使用 GetLastError() 返回错误码50, 使用 FormatMessage 处理后显示 “不支持该请求”。(DebugActiveProcess中使用的进程ID是正确的),请指教,谢谢。    

Re: 关于DebugActiveProcess


格蠹老雷 2011-08-20, 22:07 下午

一种可能是调试器编译成32位,而目标是64位,或者反之。

尝试用32位的WinDBG附加到64位的记事本进程,会得到同样的错误码:

0:001> !error 0xc00000bb
Error code: (NTSTATUS) 0xc00000bb (3221225659) - The request is not supported.

 

Re: 关于DebugActiveProcess


落英缤纷yhj 2011-08-21, 10:14 上午
我用的是win7 x64。用VS2010编译的,我把编译平台改为x64(原来是x86)之后再次尝试,DebugActiveProcess就能成功了,谢谢老师。
还有两个问题,想请教一下:1.现在有没有什么方法能是函数适合多个平台?  2.当我用CreateProcess 打开进程进行调试时(有DEBUG_PROCESS 选项),比如调试一个计算器进程,CreateProcess成功,且在任务管理器中的确看到了有Calc.exe这个进程,但是没有计算器的图形界面出现,请问一下这种情况怎么办?

Powered by Community Server Powered by CnForums.Net