是否可以象征MonoTouch故障转储并从中获取行号?如果是这样,怎么做?

我已经通过以下方式配置了我的项目:

  • 在发布模式下构建
  • 在项目选项->构建-> iPhone构建->常规选项卡中选中“启用调试”
  • 在项目选项->构建->编译器
  • 中选中了“发出调试信息”

    现在,当我对转储运行symbolicatecrash时,我在堆栈跟踪中获得了方法名称,但仅对它们偏移(例如“+ 268”),而不是行号。

    我正在使用MonoTouch 4.21。

    最佳答案

    简短答案:我认为问题在于提前(AOT)编译器-但您最好将此类问题通过电子邮件发送给mono-devel mailing-list以获得最终答案。

    长答案:

    Mono编译器/运行时(该行为由MonoTouch继承)将调试信息(包括行号)保留在 mdb 文件中。

    XCode与 DWARF (DSYM)文件一起使用。当XCode表示故障转储时,它仅在(AOT产生的)DWARF符号中查找以获取其信息-即未查找 mdb 文件。

    现在,Mono debugger(和运行时)也可以应付DWARF(这应该符合要求)。但是对于MonoTouch,我不确定AOT编译器(调用 gcc )是否会生成包含C#行号的最终DWARF符号-导致仅符号和偏移量可用(均适用于gcc)。

    关于xcode - 是否可以象征MonoTouch故障转储并从中获取行号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7569814/

    10-14 15:25