如何实现自动记录程序运行过的代码所在的行数?
想做一个小工具,它能打印出程序运行过的代码所在的行数。比如:
1 if(i == 1)
2 ...
3 else
4 ...
5 dosth();
6 ...
现在让i等于1,然后运行代码,由所做的小工具自动地记录程序运行的路径1,2,5,6...
这样的工具能实现么?怎么实现呢?
--------------------编程问答-------------------- 以前我也想过类似的问题,至今还没有得到答案 --------------------编程问答-------------------- 没想过。。。俺都是土办法,debug。。。
--------------------编程问答-------------------- 研究一下stackTrace class
Visual Basic 复制代码
' Display the stack frame properties.
Dim sf As StackFrame = st.GetFrame(i)
Console.WriteLine(" File: {0}", sf.GetFileName())
Console.WriteLine(" Line Number: {0}", _
sf.GetFileLineNumber())
' The column number defaults to zero when not initialized.
Console.WriteLine(" Column Number: {0}", _
sf.GetFileColumnNumber())
If sf.GetILOffset <> StackFrame.OFFSET_UNKNOWN
Console.WriteLine(" Intermediate Language Offset: {0}", _
sf.GetILOffset())
End If
If sf.GetNativeOffset <> StackFrame.OFFSET_UNKNOWN
Console.WriteLine(" Native Offset: {0}", _
sf.GetNativeOffset())
End If
C# 复制代码
// Display the stack frame properties.
StackFrame sf = st.GetFrame(i);
Console.WriteLine(" File: {0}", sf.GetFileName());
Console.WriteLine(" Line Number: {0}",
sf.GetFileLineNumber());
// Note that the column number defaults to zero
// when not initialized.
Console.WriteLine(" Column Number: {0}",
sf.GetFileColumnNumber());
if (sf.GetILOffset() != StackFrame.OFFSET_UNKNOWN)
{
Console.WriteLine(" Intermediate Language Offset: {0}",
sf.GetILOffset());
}
if (sf.GetNativeOffset() != StackFrame.OFFSET_UNKNOWN)
{
Console.WriteLine(" Native Offset: {0}",
sf.GetNativeOffset());
}
--------------------编程问答-------------------- 楼上的代码好难啊...
具体思路是什么呢?
--------------------编程问答-------------------- 期待高人出现。。。
补充:.NET技术 , C#