iOS堆栈跟踪不准确

时间:2013-05-23 10:02:37

标签: ios stack-trace

我正在开发iOS应用程序并遇到崩溃。我无法调试它,因为我需要一个代替Apple连接器的串行通信工具。 我设法在失败的实例中生成堆栈跟踪:

    0 - 0   Flashtool_iPad                      0x0003d8c1 SignalHandler + 152
   1 - 1   libsystem_c.dylib                   0x3c0fee93 _sigtramp + 42
   2 - 2   libsystem_c.dylib                   0x3c12283d __sfvwrite + 352
   3 - 3   Flashtool_iPad                      0x00041811 -[ProgrammingLogic execute_programming_procedure] + 716
   4 - 4   Flashtool_iPad                      0x0003e86f __52-[ProgramViewController programController:forEvent:]_block_invoke + 54
   5 - 5   libdispatch.dylib                   0x3c09811f <redacted> + 10
   6 - 6   libdispatch.dylib                   0x3c09becf <redacted> + 142
   7 - 7   libdispatch.dylib                   0x3c09bdc1 <redacted> + 40
   8 - 8   libdispatch.dylib                   0x3c09c91d <redacted> + 184
   9 - 9   libdispatch.dylib                   0x3c09cac1 <redacted> + 84
  10 - 10  libsystem_c.dylib                   0x3c0cca11 <redacted> + 360
  11 - 11  libsystem_c.dylib                   0x3c0cc8a4 start_wqthread + 8

但不幸的是,表示实际失败发生位置的第四行(3 - 3 Flashtool_iPad 0x00041811 -[ProgrammingLogic execute_programming_procedure] + 716)指向目标C代码中的注释......此声明:4 - 4 Flashtool_iPad 0x0003e86f __52-[ProgramViewController programController:forEvent:]_block_invoke + 54实际出现在源代码的第48行 - 不是54! 那么偏移来自哪里? 提前致谢

1 个答案:

答案 0 :(得分:3)

偏移量不是指示行,而是来自机器代码中函数开头的字节。