private static async Task __AddTracePointAsync(IDebugThread2 thread) { await Shell.ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { if (thread != null) { IEnumDebugFrameInfo2 frame; thread.EnumFrameInfo(enum_FRAMEINFO_FLAGS.FIF_FUNCNAME, 0, out frame); var frameInfo = new FRAMEINFO[1]; uint pceltFetched = 0; while ((frame.Next(1, frameInfo, ref pceltFetched) == VSConstants.S_OK) && (pceltFetched > 0)) { if (String.IsNullOrEmpty(frameInfo[0].m_bstrFuncName)) { continue; } if (s_DTE != null) { s_DTE.Debugger.Breakpoints.Add(frameInfo[0].m_bstrFuncName); Breakpoint2 breakpoint2 = s_DTE.Debugger.Breakpoints.Item(s_DTE.Debugger.Breakpoints.Count) as Breakpoint2; breakpoint2.Message = BREAKPOINT_MESSAGE; breakpoint2.BreakWhenHit = false; } } } } catch (Exception ex) { service.Output.WriteError(ex.ToString()); } }
public BreakpointNodeFactory(Breakpoint2 breakpoint) { _breakpoint = breakpoint; }
internal ShellBreakpoint(Breakpoint2 breakpoint) { _breakpoint = breakpoint; }