0
削除されたアプリケーションが作成されていませんでした。objcopy --only-keep-debugアプリケーションのバージョンを削除していない場合、GDBを使用してデバッグシンボルを削除アプリケーションに追加する方法を教えてください。
削除されたアプリケーションが作成されていませんでした。objcopy --only-keep-debugアプリケーションのバージョンを削除していない場合、GDBを使用してデバッグシンボルを削除アプリケーションに追加する方法を教えてください。
gdbでデバッガを起動して、stripped executableを実行するだけです。
gdbでsymbol-fileを使用してシンボルにポイントすることもできます。
私は試してみます 1)gdb -p 4072 2)シンボルファイル/ tmp/telemetry 3)bt#0 0x40439276 in ?? ()from /lib/libc.so.6 /lib/libc.so.6からのpoll()の#1 0x404a8488 #2の0x0000f980? () #3 0x0000f980? () バックトレースが停止しました:前のフレームはこのフレームと同じです(破損スタック?) (gdb)bメイン 0x1be5c:mainでブレークポイント1。 (2ヵ所) – qVLAD
gdbは/ tmp/telemetryにシンボルがあると言っていますか?ポーリングを呼び出す他のライブラリを使用していますか?これはコードで行いますか? – dbrank0
Gdbはデバッグシンボルを発見したと言っています。 (gdb)シンボルファイル/ tmp/telemetry_debug_only /tmp/telemetry_debug_only..doneからシンボルを読み込みます。 警告:ファイル "/lib/libthread_db.so.1"は、自動ロードセーフティパスが$ debugdir:$ datadir/auto-loadに設定されているため、自動ロードが拒否されました。 警告:下位互換性のあるスレッドライブラリlibthread_dbが見つかりません。スレッドのデバッグは利用できません。 pollを呼び出す他のライブラリを使用します。 – qVLAD