当前位置:编程学习 > C#/ASP.NET >>

如何实现自动记录程序运行过的代码所在的行数?

想做一个小工具,它能打印出程序运行过的代码所在的行数。
比如:
       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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,