2012-04-17 13 views
0

私たちはMDBGを使用してIISワーカープロセスに接続しています。Mdbg:プロセスから切り離すことができません

スタックスナップショットを実行した後、MDBgProcess.Detach()でデタッチします。

この呼び出しには通常10-80msかかりますが、時には非常に長い間ハングし、その間にプロセスがフリーズします。

このプロセスはプロダクションプログラムであるため、これは受け入れられません。

ここに私達の完全なコードは次のとおりです。

try 
{ 
    proc.AsyncStop(); 
} 
finally 
{ 
    // Make sure we are able to detach 
    try 
    { 
     // delete all breakpoints 
     proc.Breakpoints.DeleteAll(); 
    } 
    catch (Exception e){} 
    finally 
    { 
     // detach and wait 
     var waitHandle = proc.Detach(); 
     if (proc.CanExecute()) 
     { 
      waitHandle.WaitOne(); 
     } 
    } 
} 

これが起こることがあり、なぜすべてのアイデアは、我々はそれについて何ができるのでしょうか?

ベスト、 マイク

答えて

0

それがハングアップなぜ私は知らないが、私はあなたが潜在的に競合状態を持っていると思う - プロセスがWAITONE()上を使用して停止するまで、私のプログラムでは、私がブロック停止()...

proc.AsyncStop().WaitOne(); 
m_Debugger.Processes.Active.Breakpoints.DeleteAll(); 
proc.CorProcess.Detach(); // I don't wait here because this is where my prog ends 
関連する問題