5

アプリからクラッシュレポートを受信して​​いますが、Xcodeはアプリに固有のシンボルをシンボル化できません。

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x32c43a1c __pthread_kill + 8
1   libsystem_c.dylib               0x33a0a3b4 pthread_kill + 52
2   libsystem_c.dylib               0x33a02bf8 abort + 72
3   libsystem_c.dylib               0x33a306d4 __assert_rtn + 140
4   MyApplication                   0x0000dd54 0x9000 + 19796
5   MyApplication                   0x0000dbda 0x9000 + 19418
6   MyApplication                   0x000103f6 0x9000 + 29686
7   MyApplication                   0x0001035e 0x9000 + 29534
8   MyApplication                   0x0000f3cc 0x9000 + 25548
9   MyApplication                   0x00025d1e 0x9000 + 118046
10  CoreFoundation                  0x35847efc -[NSObject(NSObject) performSelector:withObject:] + 16
11  Foundation                      0x36eec7a2 __NSThreadPerformPerform + 262
12  CoreFoundation                  0x358b1a72 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 6
13  CoreFoundation                  0x358b3758 __CFRunLoopDoSources0 + 376
14  CoreFoundation                  0x358b44e4 __CFRunLoopRun + 224
15  CoreFoundation                  0x35844ebc CFRunLoopRunSpecific + 224
16  CoreFoundation                  0x35844dc4 CFRunLoopRunInMode + 52
17  GraphicsServices                0x3446b418 GSEventRunModal + 108
18  GraphicsServices                0x3446b4c4 GSEventRun + 56
19  UIKit                           0x344a2d62 -[UIApplication _run] + 398
20  UIKit                           0x344a0800 UIApplicationMain + 664
21  MyApplication                   0x0000b174 main (main.m:14)
22  MyApplication                   0x0000b124 0x9000 + 8484

main.mの行を除いて。XcodeのアーカイブにまだdSYMファイルがあることはわかっています。コマンドラインを使用してこれらのデバッグシンボルを直接参照しようとしましたが、毎回同じ結果が得られます。atosを使用してシンボルを直接検索しようとしましたが、見つかりませんでした。UUIDを比較して、それが正しいdSYMであることを確認しました。

毎回main.mを見つけるので、半分は機能しているように見えますが、他のものを見つけることができません。

このアプリで静的ライブラリを使用しています-静的ライブラリでクラッシュが発生している可能性はありますか?そのデバッグ情報は、別のデバッグシンボルのセットに含まれますか?責任のあるライブラリが私のアプリケーションであると表示されます...実際にクラッシュの原因となった場合、静的ライブラリの名前が表示されますか?

ありがとう!

4

1 に答える 1

5

静的ライブラリはアプリの実行可能ファイルにリンクされているため、リンクした後は、そのコードの元のソースを特定できなくなります。したがって、常にアプリにソースバイナリという名前が付けられます。

含めた静的ライブラリが原因で、これらのフレームがシンボリック化されていない可能性があります。これは、静的ライブラリにシンボルが含まれていないが、削除されている場合に発生します。デフォルト設定がアプリの場合と同じである静的ライブラリリリースビルドでは、シンボルを削除することがよくあります。(アプリの場合、これは正しいことです!)

その場合、シンボルは静的ライブラリで見つからないため、dSYMにコピーされません。

于 2012-04-14T12:54:01.730 に答える