日期:2014-05-19  浏览次数:21433 次

获取程序的行号?????
我想保存程序中出现异常的地方(函数名,行号,)听说有一个函数(或者宏)可以自动获取行号,谁能告诉我?我从网上没有搜索到!

------解决方案--------------------
.NET Framework 类库
StackFrame.GetFileLineNumber 方法
获取文件中包含所执行代码的行号。该信息通常从可执行文件的调试符号中提取。

命名空间:System.Diagnostics
程序集:mscorlib(在 mscorlib.dll 中)
返回值
文件行号。 - 或 - 如果无法确定行号,则为零。


下面的代码示例说明了如何使用 GetFileLineNumber 方法。

// 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());
}