C# 无法从Mono.dll获取stacktrace、源行#信息
我正在Windows Server 2012上运行一些C# 无法从Mono.dll获取stacktrace、源行#信息,c#,.net,mono,nullreferenceexception,xamarin-studio,C#,.net,Mono,Nullreferenceexception,Xamarin Studio,我正在Windows Server 2012上运行一些.NET.dlls。.NET程序集是使用Xamarin 4.0从osx上的C#代码编译而成的。(是的,我知道奇怪的设置-但我是一个游戏开发者) 一般来说,它们运行得很好,但是当涉及到检查异常信息时,就不是那么好了。我试图从异常对象中提取信息,但它都是空的。我还尝试将.mdb文件与.dll一起复制,并确保我是在Debug中构建的,并且带有调试符号。 例如,此代码 log.Error(例如ToString()); var st=新堆栈跟踪(ex,
.NET
.dll
s。.NET
程序集是使用Xamarin 4.0
从osx
上的C#
代码编译而成的。(是的,我知道奇怪的设置-但我是一个游戏开发者)
一般来说,它们运行得很好,但是当涉及到检查异常信息时,就不是那么好了。我试图从异常
对象中提取信息,但它都是空的。我还尝试将.mdb
文件与.dll
一起复制,并确保我是在Debug
中构建的,并且带有调试符号。
例如,此代码
log.Error(例如ToString());
var st=新堆栈跟踪(ex,true);
var frame=st.GetFrame(0);
var line=frame.GetFileLineNumber();
log.ErrorFormat(“st:{0},帧:{1},行:{2}”,st.ToString(),frame.ToString(),行);
生成这样的输出,基本上就是方法名
System.NullReferenceException: Object reference not set to an instance of an object.
at Mindlube.CD3.RandomMatchMaker.ProcessMatchQueue() [ThreadFiber-1] ERROR Mindlube.CD3.App [(null)] - st:
at Mindlube.CD3.RandomMatchMaker.ProcessMatchQueue(), frame: ProcessMatchQueue
at offset 927 in file:line:column <filename unknown>:0:0, line: 0
System.NullReferenceException:对象引用未设置为对象的实例。
在Mindlube.CD3.RandomMatchMaker.ProcessMatchQueue()[ThreadFiber-1]处出现错误Mindlube.CD3.App[(null)]-st:
在Mindlube.CD3.RandomMatchMaker.ProcessMatchQueue()中,帧:ProcessMatchQueue
在文件中的偏移量927处:行:列:0:0,行:0
关于获取更详细的异常
信息,有什么建议吗?在Windows上使用Visual Studio
目前不是一个选项,因为我没有时间重新调整整个开发环境。所以不要说“使用VStudio”:)这是因为.NET不理解mdb文件
遗憾的是,没有将mdb文件转换为pdb文件的工具,您唯一的选择是在Windows机器上编写自己的应用程序或使用Mono执行应用程序。几乎所有的NullReferenceException
情况都是相同的。请参阅“”以获取一些提示。您是否曾经获得过此问题的解决方案?我也有同样的问题。我将构建输出设置为包含完整的调试信息(在VisualStudio中),并使用--debug运行mono,但没有效果。