public ManagedCallback GetProcessCallbackInterface(string name, ICorDebugThread pThread)
		{
			ICorDebugProcess pProcess;
			try {
				pProcess = pThread.GetProcess();
			} catch (COMException e) {
				debugger.TraceMessage("Ignoring callback \"" + name + "\": " + e.Message);
				return null;
			}
			return GetProcessCallbackInterface(name, pProcess);
		}
Exemple #2
0
        public ManagedCallback GetProcessCallbackInterface(string name, ICorDebugThread pThread)
        {
            ICorDebugProcess pProcess;

            try {
                pProcess = pThread.GetProcess();
            } catch (COMException e) {
                debugger.TraceMessage("Ignoring callback \"" + name + "\": " + e.Message);
                return(null);
            }
            return(GetProcessCallbackInterface(name, pProcess));
        }
Exemple #3
0
 public DnProcess TryGetValidProcess(ICorDebugThread comThread)
 {
     DebugVerifyThread();
     if (comThread == null)
         return null;
     ICorDebugProcess comProcess;
     int hr = comThread.GetProcess(out comProcess);
     if (hr < 0)
         return null;
     return TryGetValidProcess(comProcess);
 }
Exemple #4
0
        void InitializeCurrentDebuggerState(DebugCallbackEventArgs e, ICorDebugProcess comProcess, ICorDebugAppDomain comAppDomain, ICorDebugThread comThread)
        {
            if (comThread != null) {
                if (comProcess == null)
                    comThread.GetProcess(out comProcess);
                if (comAppDomain == null)
                    comThread.GetAppDomain(out comAppDomain);
            }

            if (comAppDomain != null) {
                if (comProcess == null)
                    comAppDomain.GetProcess(out comProcess);
            }

            var process = TryGetValidProcess(comProcess);
            DnAppDomain appDomain;
            DnThread thread;
            if (process != null) {
                appDomain = process.TryGetAppDomain(comAppDomain);
                thread = process.TryGetThread(comThread);
            }
            else {
                appDomain = null;
                thread = null;
            }

            if (thread == null && appDomain == null && process != null)
                appDomain = process.AppDomains.FirstOrDefault();
            if (thread == null) {
                if (appDomain != null)
                    thread = appDomain.Threads.FirstOrDefault();
                else if (process != null)
                    thread = process.Threads.FirstOrDefault();
            }

            if (process == null)
                SetDefaultCurrentProcess(e);
            else
                AddDebuggerState(new DebuggerState(e, process, appDomain, thread));
        }
		void EnterCallback(string name, ICorDebugThread pThread)
		{
			EnterCallback(name, pThread.GetProcess());
		}
Exemple #6
0
 private void EnterCallback(PausedReason pausedReason, string name, ICorDebugThread pThread)
 {
     EnterCallback(pausedReason, name, pThread.GetProcess());
     process.SelectedThread = process.Threads[pThread];
 }
		void EnterCallback(PausedReason pausedReason, string name, ICorDebugThread pThread)
		{
			EnterCallback(pausedReason, name, pThread.GetProcess());
			process.SelectedThread = process.Threads[pThread];
		}
 void EnterCallback(string name, ICorDebugThread pThread)
 {
     EnterCallback(name, pThread.GetProcess());
 }
 void EnterCallback(string name, ICorDebugThread pThread)
 {
     EnterCallback(name, pThread.GetProcess());
     threadToReport = process.GetThread(pThread);
 }
		void EnterCallback(string name, ICorDebugThread pThread)
		{
			EnterCallback(name, pThread.GetProcess());
			threadToReport = process.GetThread(pThread);
		}