Прикрепить к событиям отладчика отлаживаемый код? - PullRequest
1 голос
/ 17 марта 2011

Есть ли какие-либо события, которые Visual Studio вызывает при отладке, на которые я мог бы подписаться в коде? В частности, я хотел бы знать, когда отладчик отключен или останавливается. Спасибо

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

В отдельном потоке вы можете проверить метод 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 голос
/ 17 марта 2011

Попробуйте это:

System.Diagnostics.Debugger.IsAttached  

Также найдите условные символы компиляции и обратите внимание на символ DEBUG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...