問題タブ [google-breakpad]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ネイティブ クラッシュ コレクションとシンボリケーション
Android アプリケーションのネイティブ コードで発生したクラッシュのクラッシュ ダンプを収集し、デスクトップ マシンでそのクラッシュ ダンプをシンボル化する良い方法はありますか。
Google ブレークパッドの統合を試み、クラッシュ ダンプの収集に成功しました。次に、クラッシュ スタック トレースのシンボル化を試みましたが、あまり役に立ちませんでした。シンボル化されたクラッシュ スタックで利用できるファイル名と行番号の情報はありません。
記号化された部分出力は次のようになります。
欠けているものはありますか?
c++ - Windows ミニダンプ ファイルへのスレッド名の埋め込み
この 32 ビット C++ アプリケーションは、Windows の標準的な方法を使用してスレッドに名前を付けます。エラーが発生するとミニダンプが生成されますが、ダンプが Visual Studio 2013 に読み込まれると、スレッド名が失われます。これにより、多数のスレッドが存在する場合、問題のデバッグが難しくなります。
これを改善するために私が聞いた唯一の方法は、このMicrosoft User Voice の投稿から来ています。発信者は、カスタム ストリームにそれらを埋め込み、カスタム Visual Studio 拡張機能を記述して、ダンプの読み込み時にスレッドの名前を変更することを提案しています。ただし、これは面倒なようで、読み込みプロセスに多くの時間がかかるようです。
スレッド名をダンプに埋め込む簡単な方法はありますか? Visual Studio にロードするときに "そのまま動作" しますか?
参考までに: Visual Studio 2013 を使用してビルドし、アプリを Win7 以降で実行し、Google Breakpad を使用してダンプを生成します。
ios - google-breakpad を iOS プロジェクトに追加するには?
iOS プロジェクトに google-breakpad を追加したいのですが、残念ながら iOS クライアントのドキュメントが存在せず (または見つからない)、mac/xcode/ios に関する私の知識は非常に貧弱です。どうすれば設定できますか?
ios - iOS アプリケーションに mac dump_syms を使用できますか?
iOS アプリケーションのシンボルを生成したいのですが、Google ブレークパッドには mac しかdump_syms
ありません。iOS では見つかりませんでした。iOSでも使えますか?試してみると、次のエラーが表示されます。
iOS SDK を使用してこれをビルドしようとしましたが、同じエラーが発生します。
macos - OS X dlopen がフレームワークを見つけられない - イメージが見つかりません
アプリケーションに Google Breakpad (外部フレームワーク) のサポートを追加しようとしています。必要な手順をすべて実行しましたが、dlopen を使用してアプリケーションをロードしようとすると、次のエラーが発生します。
確認したところ、Breakpad ファイルは実際に (MyApp ファイルへの) 相対パスに存在します。
MyApp ファイルの otool -L は次のとおりです (@executable_path に注意してください)。
誰にも手がかりがありますか?
linux - 親が google_breakpad::ExceptionHandler::SignalHandler でクラッシュまたは終了すると、子がハングする
これは、子プロセスのクローンを作成した後、ブロック解除バイトを送信する前に、親プロセスがクラッシュした場合に発生しSendContinueSignalToChild()
ます。この場合、パイプ ファイル ハンドルは開いたままになり、子はread(...)
内で無限にブロックされたままになりますWaitForContinueSignal()
。クラッシュ後、child は init プロセスによって採用されます。
再現手順:
l. で親のクラッシュをシミュレートしgoogle_breakpad::ExceptionHandler::GenerateDump(CrashContext *context)
ます:
GenerateDump(...)
上記のメソッドが呼び出されるように、処理されたシグナルの 1 つを親 (SIGSEGV など) に送信します。- 親は終了しますが、子がまだ存在し、 でブロックされていることを確認し
WaitForContinueSignal()
ます。
上記の手順の出力:
1687 は初期 pid です。
現実の世界では、シグナルを処理するスレッドと並行してクラッシュが発生します。注: この問題は、通常のプログラムの終了 (つまりexit(0)
、並列スレッドで呼び出される) によっても発生する可能性があります。
Linux 3.3.8-2.2.、mips および i686 プラットフォームでテスト済み。
だから、私の2つの質問:
- ブレイクパッドライブラリが子を生かしておくのは予想される動作ですか? 私の期待は、親がクラッシュ/終了した直後に子が終了することです。
- 予期しない動作である場合、親のクラッシュ/終了後にクライアントを終了するための最良の解決策は何ですか?
前もって感謝します!
linux - ブレークパッドの dump_syms にバイナリ データをパイプすることは可能ですか?
Google のdump_syms
プログラムでは、次のようなシンボリック ファイルを書き込むために、入力ファイルと出力ファイルが必要です。
test.so
メモリ バッファにのバイナリがあります。最初にバイナリを一時ファイルに書き込み、それをフィードしてからdump_syms
この一時ソースを削除すると、パフォーマンスが低下します。
dump_syms
ファイル システムをバイパスするために、何らかの方法でバイナリ データを に直接パイプすることは可能ですか? これを行うには、おそらく Linux のネイティブ パイピングの観点からの方法が必要だと思います。
dump_syms
がパイピングをサポートするのが最善の方法であることはわかっていますが、この機能はないと思います。これを考慮して、おそらくパイプを受け入れるようにdump_symsを変更するためのヒントがあれば、それも聞いてみたいです.
android - Google ブレークパッド Android サンプル エラーのビルド
Ubuntu 14.04 x64; ndk-r10c
「android/sample_app」でndk-buildを実行すると、libbreakpad_client.aを作成できますが、リンクでエラーがスローされます:
このエラーを修正するにはどうすればよいですか?