在我的应用程序的VS 2013(C#)跟踪(到文件)执行路径中是否可以?我的意思是逐行,就像我在断点之后一直按F11一样,手动写下行...结果日志可能很大,我知道,但是呢?
当然我需要源代码行,而不是MSIL。
答案 0 :(得分:0)
是的,这是可能的,但如果你这需要访问源文件 真的需要源代码。
C#4.5必需:
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,但是除非你传递一些对象,否则将很难完成其他的...