iOS - 符号堆栈跟踪符号

时间:2015-06-16 02:59:46

标签: ios iphone stack-trace symbolicate

我想用[NSThread callStackSymbols]来表示记录的堆栈跟踪符号,以识别完整的堆栈回溯调用。但是,这并没有给出象征性的痕迹。

0   TestApp                               0x0029616f TestApp + 1823087
    1   TestApp                               0x003ef18d TestApp + 3236237
    2   UIKit                               0x2ab7bb1f <redacted> + 438
    3   UIKit                               0x2ac0bea3 <redacted> + 306
    4   UIKit                               0x2ab7bb1f <redacted> + 438
    5   CoreFoundation                      0x2757546d <redacted> + 48
    6   CoreFoundation                      0x2756e4c3 <redacted> + 234
    7   UIKit                               0x2ab7bc9b <redacted> + 818
    8   UIKit                               0x2ae32799 <redacted> + 584
    9   UIKit                               0x2abdfbd9 <redacted> + 308
    10  UIKit                               0x2ab5bdd7 <redacted> + 458
    11  CoreFoundation                      0x2760fffd <redacted> + 20
    12  CoreFoundation                      0x2760d6bb <redacted> + 278
    13  CoreFoundation                      0x2760dac3 <redacted> + 914
    14  CoreFoundation                      0x2755b3b1 CFRunLoopRunSpecific + 476
    15  CoreFoundation                      0x2755b1c3 CFRunLoopRunInMode + 106
    16  GraphicsServices                    0x2eb88201 GSEventRunModal + 136
    17  UIKit                               0x2abc543d UIApplicationMain + 1440
    18  TestApp                               0x0031581b TestApp + 2344987
    19  libdyld.dylib                       0x35a6baaf <redacted> + 2 

我尝试了开发和企业构建。都没有成功。无论如何都有象征性吗?我搜索了许多论坛,所有人都要求用atos命令执行此操作,如下所示

atos -arch armv7 -o 'app name.app'/'app name' 0x000000000

但是,我不确定我必须使用上述命令的内存地址以及如何获取它。

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

你在这里跳过几件。 atos中的内存地址应该引用加载地址和堆栈地址,你也需要dSYM文件。

关于手动执行此操作,实际上有一个关于apteligent的非常好的写作Symbolicating an iOS Crash Report。我建议你仔细阅读,以了解符号的工作原理。