internal DbgStackWalker CreateStackWalker(DbgThreadImpl thread) { var stackWalker = owner.Dispatcher2.Invoke(() => CreateStackWalker_DbgThread(thread)); if (stackWalker == null) { // Invoke() returns null if shutdown has started but we can't return null stackWalker = new DbgStackWalkerImpl(thread, new NullDbgEngineStackWalker()); } CloseOnContinue(stackWalker); return(stackWalker); }
internal DbgStackWalker CreateStackWalker(DbgThreadImpl thread) { DbgEngineStackWalker engineStackWalker; if (Engine.IsClosed) { engineStackWalker = new NullDbgEngineStackWalker(); } else { engineStackWalker = Engine.CreateStackWalker(thread); } var stackWalker = new DbgStackWalkerImpl(thread, engineStackWalker); CloseOnContinue(stackWalker); return(stackWalker); }