Pergunta

Na sequência esta questão agora tem o código que pode anexar a um processo usando a API MDBG.

O problema é que eu não posso separar o processo se eu precisar. Quando eu chamo mgProcess.Detach () WaitOne (); (onde mgProcess é um MDbgProcess criado a partir de um objeto MDbgEngine) recebo a seguinte mensagem de erro:.

 Process not synchronized. (Exception from HRESULT: 0x80131302)
     at Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugController.Detach()
     at Microsoft.Samples.Debugging.CorDebug.CorController.Detach() in C:\mdbg\src\debugger\corapi\Controller.cs:line 89
     at Microsoft.Samples.Debugging.MdbgEngine.MDbgProcess.Detach() in C:\mdbg\src\debugger\mdbgeng\Process.cs:line 716

Se eu tentar chamar mgProcess.Detach () ou mgProcess.CorProcess.Detach () eu obter o mesmo resultado.

Alguém sabe a maneira correta de separar um processo MDBG?

Foi útil?

Solução

Verifica-se que MDBG não vai permitir que você faça nada enquanto o debugee está sendo executado .

  MgProcess.CorProcess.Stop(0);
  MgProcess.Detach();

parece ser o caminho a seguir.

Outras dicas

Tente isto:

proc.AsyncStop();
proc.Detach();

ou

Proc.CorProcess.Stop(0);  
Proc.Detach();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top