在MonoMac应用程序堆栈跟踪上打印行号

时间:2012-11-01 21:00:19

标签: c# macos cocoa mono monomac

我有一个MonoMac应用程序,并希望看到哪个行导致异常。我的所有堆栈跟踪都是这样的:

[ERROR] FATAL UNHANDLED EXCEPTION: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Exception: I am going to crash now.
  atSync.MacConfiguration..ctor (System.String destinationPath, IDatabasePathGenerator pathGenerator) [0x00000] in <filename unknown>:0 
  at Sync.MacConfiguration..ctor () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
at System.Reflection.MonoCMethod.Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) <0x001f3>
at System.Reflection.MonoCMethod.Invoke (System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) <0x00024>
at System.Reflection.ConstructorInfo.Invoke (object[]) <0x00042>
at System.Activator.CreateInstance (System.Type,bool) <0x001d3>
at System.Activator.CreateInstance (System.Type) <0x00013>
at Sync.ConfigurationSection.get_Configuration () <0x00043>
at Sync.Configuration.LoadFromXML (string) <0x000cf>
at Sync.Configuration.get_Default () <0x0005f>
at Sync.Mac.AppDelegate..ctor () <0x00037>
at (wrapper dynamic-method) object.905edfe4-e0b5-4f92-955e-4e10c991fb3a (intptr,MonoMac.ObjCRuntime.Selector) <0x00057>
at (wrapper native-to-managed) object.905edfe4-e0b5-4f92-955e-4e10c991fb3a (intptr,MonoMac.ObjCRuntime.Selector) <0x0006f>
at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) <0x00003>
at MonoMac.AppKit.NSApplication.Main (string[]) <0x0003f>
at Sync.Mac.MainClass.Main (string[]) <0x000e7>

我尝试将.mdb文件复制到Contents/MonoBundle文件夹,但我仍然没有在堆栈跟踪上看到行号。

有关如何解决此问题的任何提示?

1 个答案:

答案 0 :(得分:1)

在Linux中,要查看行号,您不仅需要.mdb,还要使用“--debug”标志调用mono。

现在,在Mac上我不确定这是否有效(或者如果它甚至可能因为你正在使用捆绑包而且我不确定这是否意味着你将所有编译成一个单独的可执行文件?)。