c#跟踪(记录)两点之间的所有代码行
本文关键字:代码 之间 跟踪 记录 两点 | 更新日期: 2023-09-27 17:54:12
是否可以在VS 2013 (c#)跟踪(到文件)我的应用程序的执行路径?我的意思是逐行,就好像我在断点后一直按F11,手动写下行…由此产生的日志可能是巨大的,我知道,但尽管如此?
当然我想要源代码行,而不是MSIL。
是的,这是可能的,但是这需要访问源文件,如果您真的需要源代码。
使用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在同一个文件中,其他任何事情都很难完成,除非你传递一些对象…