Пример #1
0
 /// <summary>
 /// Event Handler for the creation of the Debugee's threads
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">An EventArgs that contains no event data.</param>
 private void CreateThreadEventHandler(object sender, CorThreadEventArgs e)
 {
     if (!e.Thread.Process.HasQueuedCallbacks(null))
     {
         e.Continue = false;
         SignalAttachedProcess();
     }
     else
     {
         e.Continue = true;
     }
 }
Пример #2
0
        void OnBreak(object sender, CorThreadEventArgs e)
        {
            lock (debugLock) {
                if (evaluating)
                {
                    e.Continue = true;
                    return;
                }
            }
            OnStopped();
            e.Continue = false;
            SetActiveThread(e.Thread);
            TargetEventArgs args = new TargetEventArgs(TargetEventType.TargetInterrupted);

            args.Process   = GetProcess(process);
            args.Thread    = GetThread(e.Thread);
            args.Backtrace = new Backtrace(new CorBacktrace(e.Thread, this));
            OnTargetEvent(args);
        }
Пример #3
0
 void OnCreateThread(object sender, CorThreadEventArgs e)
 {
     OnDebuggerOutput(false, string.Format("Started Thread {0}\n", e.Thread.Id));
     e.Continue = true;
 }
Пример #4
0
 void OnThreadExit(object sender, CorThreadEventArgs e)
 {
     lock (threads) {
         threads.Remove(e.Thread.Id);
     }
 }
Пример #5
0
 void OnNameChange(object sender, CorThreadEventArgs e)
 {
 }
Пример #6
0
 /// <summary>
 /// Event handler for when a thread of the process exits
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">An EventArgs that contains no event data.</param>
 private void ExitThreadEventHandler(object sender, CorThreadEventArgs e)
 {
 }