Visual Studio在調試時提出了什麼事件,我可以在代碼中訂閱?具體來說,我想知道調試器何時分離或停止。謝謝從正在調試的代碼附加到調試器事件?
1
A
回答
2
在一個單獨的線程中,您可以檢查Debugger.IsAttached
方法並相應地生成事件。
編輯:我只是鞭打這件事,看看它是否有效。
public class DebuggerEvents {
public delegate void DebuggingStatusChanged(EventArgs e);
public event DebuggingStatusChanged DebuggerAttached;
public event DebuggingStatusChanged DebuggerUnattached;
private readonly Thread workerThread;
public DebuggerEvents() {
var threadStart = new ThreadStart(BackgoundWorker);
workerThread = new Thread(threadStart);
workerThread.Start();
}
private void BackgoundWorker() {
bool currentStateflag = Debugger.IsAttached;
while (true) {
if (Debugger.IsAttached && !currentStateflag){
DebuggerAttached(new EventArgs());
currentStateflag = true;
}
if (!Debugger.IsAttached && currentStateflag){
DebuggerUnattached(new EventArgs());
currentStateflag = false;
}
Thread.Sleep(100);
}
}
}
1
試試這個:
System.Diagnostics.Debugger.IsAttached
而且查找條件編譯符號,並注意調試符號。
不,調試器必須始終運行在另一個進程中。你只能輪詢。設置斷點並編輯變量值是可能的。 – 2011-03-17 22:43:03