c#跟踪(记录)两点之间的所有代码行

本文关键字:代码 之间 跟踪 记录 两点 | 更新日期: 2023-09-27 17:54:12

是否可以在VS 2013 (c#)跟踪(到文件)我的应用程序的执行路径?我的意思是逐行,就好像我在断点后一直按F11,手动写下行…由此产生的日志可能是巨大的,我知道,但尽管如此?

当然我想要源代码行,而不是MSIL。

c#跟踪(记录)两点之间的所有代码行

是的,这是可能的,但是这需要访问源文件,如果您真的需要源代码。

使用CallerInformationAttributes

c# 4.5 Required:
int _beginIndex;
public void BeginTrace(
    [CallerFilePath] string sourceFilePath = "",
    [CallerLineNumber] int sourceLineNumber = 0)
{ 
    _beginIndex = sourceLineNumber;
}
public void EndTrace(
    [CallerFilePath] string sourceFilePath = "",
    [CallerLineNumber] int sourceLineNumber = 0)
{
    int index = 0;
    foreach(var line in File.ReadLines(sourceFilePath))
    {
       if(index++ > _beginIndex && index <sourceLineNumber)
           Console.WriteLine(line);
    }
}

然后像这样使用:

  BeginTrace();
  Foo foo = new Foo();
  foo.DoSomeStuff();
  foo.Bar();
  EndTrace();

这个例子只适用于Begin和End在同一个文件中,其他任何事情都很难完成,除非你传递一些对象…