5
使用System.Diagnostics
打印堆栈跟踪并不困难。我想知道是否可以将传递给每个方法的参数的VALUES打印到堆栈跟踪上,如果不是的话。打印堆栈跟踪参数的值
这里是我的初步代码:
public static class CallStackTracker
{
public static void Print()
{
var st = new StackTrace();
for (int i = 0; i < st.FrameCount; i++)
{
var frame = st.GetFrame(i);
var mb = frame.GetMethod();
var parameters = mb.GetParameters();
foreach (var p in parameters)
{
// Stuff probably goes here, but is there another way?
}
}
}
}
在此先感谢。
它不会工作:'MethodInfo.GetParameters'返回声明的参数,而不是参数值... – 2012-04-11 22:04:02
@ThomasLevesque:好的,所以这个特定的appraoch可能无法正常工作。还有其他吗? – user420667 2012-04-11 22:07:23
只有调试器才有必要的信息,可从.pdb文件获得。然而,从那里快速下降,一个程序不能自行调试,并且这些信息仅对于调试构建而言是准确的。优化方法调用是一个非常重要的抖动优化器目标。你无法完成这项工作。 – 2012-04-11 23:25:44