2

最近、アプリでBugSenseを有効にして、クラッシュレポートの収集を支援しました。アプリの起動直後に発生しているように見えるクラッシュがたくさん見られます(自分のデバイスでは複製できませんでした)。問題は、BugSenseから取得したスタックトレースにより、アプリが実際にクラッシュを引き起こすために何もしていないように見えることです。私が見るのは、トレースでAppDelegateを開始する最初のメイン呼び出しと、それからうまく象徴化されていない一連のライブラリです。

これは私のクラッシュを理解するのに十分な情報ではないかもしれないことを私は理解していますが、おそらく私は正しい方向に向けられることで助けを得ることができます。自分のデバイス(および他のいくつかの人のデバイス)で複製することはできません。BugSenseのスタックトレースは、リリースされたアプリからのものです。

これは、BugSenseから提供されたスタックトレースです。

libsystem_kernel.dylib              0x3089232c __pthread_kill   70444
libsystem_c.dylib                   0x37d2cfeb abort   290795
libc  abi.dylib                     0x3078ef6b abort_message   28523
libc  abi.dylib                     0x3078c34d _ZL17default_terminatev   17229
libobjc.A.dylib                     0x37d7d2e3 _objc_terminate   37603
libc  abi.dylib                     0x3078c3c5 _ZL19safe_handler_callerPFvvE   17349
libc  abi.dylib                     0x3078c451 _ZdlPv   17489
libc  abi.dylib                     0x3078d825 __cxa_current_exception_type   22565
libobjc.A.dylib                     0x37d7d235 objc_exception_rethrow   37429
CoreFoundation                      0x38187545 CFRunLoopRunSpecific   62789
CoreFoundation                      0x381873a5 CFRunLoopRunInMode   62373
GraphicsServices                    0x37f5efcd GSEventRunModal   16333
UIKit                               0x31d07743 UIApplicationMain   202563
AppNameHD                           0x000039af 0x1000   10671

からの指示を使用していますが、AtosはアーカイブされたアプリケーションのdSYMからシンボルを取得してシンボル化することはできません。これは他のスタックトレースでも機能し、問題の原因となっているコードの一部が実際には上記のトレースに関する情報をまったく提供していません。

4

2 に答える 2

1

そのクラッシュ レポートはあまり役に立ちません。コードのどの部分がクラッシュを引き起こしているかを確認するには、最後の例外のバックトレースが必要です。スタック トレースでわかるように、例外が再スローされているため、別の実行ループで発生しています。

BugSense クラッシュ レポートも基づいている PLCrashReporter の新しいバージョンは、それを提供します。http://code.google.com/p/plcrashreporter/

補足: サービスHockeyApp.netは、最新バージョンの PLCrashReporter をオープン ソース SDK ( QuincyKit.net ) で使用して、サーバー上で最後の例外バックトレースとシンボリケーションを提供します。(私は両方の会員です)

于 2011-12-02T22:08:03.390 に答える
1

それらはうまく象徴しています。彼らが何であるかはめちゃくちゃです。おそらくあまり役​​に立たないでしょうが、それらを分解することができます:

% c++filt -n _ZdlPv
operator delete(void*)

ウォッチドッグタイマーから例外が発生するとは思いませんが、起動時にクラッシュすると、クラッシュログにBADF00Dが含まれているかどうか疑問に思います。

于 2011-12-01T21:03:21.453 に答える