0

我正在开发一个 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 !那么偏移量是从哪里来的呢?提前致谢

4

1 回答 1

3

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

于 2013-05-23T10:08:18.960 回答