我在.NET
上运行了一些.dll
Windows Server 2012
。 .NET
程序集是使用C#
OS X
上的Xamarin 4.0
代码编译而来的。 (是的,我知道奇怪的设置 - 但我是游戏开发者)
一般来说,它们运行得很好,但是在检查Exception
信息时,它并不是那么好。我试图从Exception
对象中提取信息,但它都是空的。我还尝试将.mdb
文件与.dll
一起复制,并确保我在Debug
中构建,并使用调试符号。
例如这段代码
log.Error (ex.ToString ());
var st = new StackTrace(ex, true);
var frame = st.GetFrame(0);
var line = frame.GetFileLineNumber();
log.ErrorFormat ("st: {0}, frame: {1}, line: {2}", st.ToString (), frame.ToString (), line);
生成这样的输出,只是方法名称,基本上是
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
有关获取更详细Exception
信息的任何建议吗?在Windows上使用Visual Studio
目前不是一个选项,因为我没有时间重新设计整个开发环境。所以不要说'使用VStudio':)
答案 0 :(得分:2)
这是因为.NET不了解mdb文件。
遗憾的是,没有工具可以将mdb文件转换为pdb文件,您唯一的选择就是在Windows机器上使用Mono编写自己的应用程序或执行应用程序。