/// <summary> /// creates the file(line,col) string to be used with "Edit.GotoNextLocation" command of IDE /// </summary> /// <param name="fileName"> asis </param> /// <param name="lineNr"> asis </param> /// <param name="colNr"> asis </param> /// <param name="tag"> asis </param> /// <returns> the "fileName(lineNr,colNr): tag: " string </returns> public static string FilePosn ( string fileName, int lineNr, int colNr, FilePositionTag tag ) => FilePosn(fileName, lineNr, colNr, lineNr, colNr, tag);
/// <summary> /// creates a string to inspect the method call contained in current call stack /// </summary> /// <param name="stackFrameDepth"> the index of stack frame </param> /// <param name="tag"> </param> /// <param name="showParam"> controls if parameter list is appended </param> /// <returns> string to inspect the method call </returns> public static string MethodHeader ( FilePositionTag tag = FilePositionTag.Debug, bool showParam = false, int stackFrameDepth = 0) { var sf = new StackTrace(true).GetFrame(stackFrameDepth + 1); return(FilePosn(sf, tag) + DumpMethod(sf.GetMethod(), showParam)); }
/// <summary> /// creates the file(line,col) string to be used with "Edit.GotoNextLocation" command of IDE /// </summary> /// <param name="fileName"> asis </param> /// <param name="lineNr"> asis </param> /// <param name="colNr"> asis </param> /// <param name="colNrEnd"></param> /// <param name="tag"> asis </param> /// <param name="lineNrEnd"></param> /// <returns> the "fileName(lineNr,colNr): tag: " string </returns> public static string FilePosn ( string fileName, int lineNr, int colNr, int lineNrEnd, int colNrEnd, FilePositionTag tag) { var tagText = tag.ToString(); return FilePosn(fileName, lineNr, colNr, lineNrEnd, colNrEnd, tagText); }
/// <summary> /// creates the file(line,col) string to be used with "Edit.GotoNextLocation" command of IDE /// </summary> /// <param name="sf"> the stack frame where the location is stored </param> /// <param name="tag"> </param> /// <returns> the "FileName(LineNr,ColNr): tag: " string </returns> public static string FilePosn(this StackFrame sf, FilePositionTag tag) { if(sf.GetFileLineNumber() == 0) return "<nofile> " + tag; return FilePosn ( sf.GetFileName(), sf.GetFileLineNumber() - 1, sf.GetFileColumnNumber(), tag ); }
/// <summary> /// creates the file(line,col) string to be used with "Edit.GotoNextLocation" command of IDE /// </summary> /// <param name="fileName"> asis </param> /// <param name="lineNr"> asis </param> /// <param name="colNr"> asis </param> /// <param name="colNrEnd"></param> /// <param name="tag"> asis </param> /// <param name="lineNrEnd"></param> /// <returns> the "fileName(lineNr,colNr): tag: " string </returns> public static string FilePosn ( string fileName, int lineNr, int colNr, int lineNrEnd, int colNrEnd, FilePositionTag tag) { var tagText = tag.ToString(); return(FilePosn(fileName, lineNr, colNr, lineNrEnd, colNrEnd, tagText)); }
/// <summary> /// creates the file(line,col) string to be used with "Edit.GotoNextLocation" command of IDE /// </summary> /// <param name="sf"> the stack frame where the location is stored </param> /// <param name="tag"> </param> /// <returns> the "FileName(LineNr,ColNr): tag: " string </returns> public static string FilePosn(this StackFrame sf, FilePositionTag tag) { if (sf.GetFileLineNumber() == 0) { return("<nofile> " + tag); } return(FilePosn ( sf.GetFileName(), sf.GetFileLineNumber() - 1, sf.GetFileColumnNumber(), tag )); }
public static string StackTrace(FilePositionTag tag, int stackFrameDepth = 0) { var stackTrace = new StackTrace(true); var result = ""; for (var i = stackFrameDepth + 1; i < stackTrace.FrameCount; i++) { var stackFrame = stackTrace.GetFrame(i); var filePosn = FilePosn(stackFrame, tag) + DumpMethod(stackFrame.GetMethod(), false); result += "\n" + filePosn; } return(result); }
/// <summary> /// write a line to debug output, flagged with FileName(LineNr,ColNr): Method (without parameter list) /// </summary> /// <param name="s"> the text </param> /// <param name="flagText"> </param> /// <param name="showParam"></param> /// <param name="stackFrameDepth"> The stack frame depth. </param> public static void FlaggedLine ( string s, FilePositionTag flagText = FilePositionTag.Debug, bool showParam = false, int stackFrameDepth = 0) { var methodHeader = MethodHeader ( flagText, stackFrameDepth: stackFrameDepth + 1, showParam: showParam); Line(methodHeader + " " + s); }
public static string MethodHeader(int oldStackFrameDepth, FilePositionTag tag = FilePositionTag.Debug, bool showParam = false) { var sf = new StackTrace(true).GetFrame(oldStackFrameDepth + 1); return FilePosn(sf, tag) + DumpMethod(sf.GetMethod(), showParam); }
/// <summary> /// write a line to debug output, flagged with FileName(LineNr,ColNr): Method (without parameter list) /// </summary> /// <param name="s"> the text </param> /// <param name="flagText"> </param> /// <param name="showParam"></param> /// <param name="stackFrameDepth"> The stack frame depth. </param> public static void FlaggedLine(string s, FilePositionTag flagText = FilePositionTag.Debug, bool showParam = false, int stackFrameDepth = 0) { Line(MethodHeader(flagText, stackFrameDepth: stackFrameDepth + 1, showParam:showParam) + " " + s); }
public static string StackTrace(FilePositionTag tag, int stackFrameDepth = 0) { var stackTrace = new StackTrace(true); var result = ""; for(var i = stackFrameDepth + 1; i < stackTrace.FrameCount; i++) { var stackFrame = stackTrace.GetFrame(i); var filePosn = FilePosn(stackFrame, tag) + DumpMethod(stackFrame.GetMethod(), false); result += "\n" + filePosn; } return result; }
public static string StackTrace(FilePositionTag tag) { return StackTrace(1, tag); }