私はrtlシミュレーションを実行していますが、シミュレータ実行ファイルはいくつかの共有オブジェクトを読み込みます。シミュレーション中に呼び出されるさまざまなpliルーチンの定義を持つオブジェクトが1つあります。私は特定の.so
ファイル内の関数をデバッグすることに興味があります、これはroutines.so
と言いましょう。デバッグをサポートしたroutines.so
のバージョンをコンパイルしました。今、シミュレーションは既に実行されており、gdbプロセスをシミュレータの実行可能ファイルに添付しています。リリースエリアからroutines.so
をピックアップしています。現在のgdbセッション自体にdebug version of routines.so
を接続する方法があるかどうか疑問に思っていましたか?私はいつでもシミュレーションを再開することができ、最初からデバッグバージョンを取得することができることを知っていますが、これらのシミュレーションは興味のあるポイントに達するまで何時間もかかるので、私はroutines.so
のフライ置換えで行うことができますか?gdbでアプリケーションをデバッグするときに.soファイルの別のバージョンを接続することは可能ですか?
0
A
答えて
0
現在のgdbセッション自体に、デバッグバージョンのroutines.soをプラグインする方法があるのでしょうか?
シミュレータでroutines.so
のアンロードとリロードが許可されていない場合はありません。
これらのシミュレーションは興味のあるポイントに到達するまでに時間がかかるので、私はルーチンのフライ置換えで行うことができますか?
あなたが行うことができるかもしれませんどのような番号はデバッグ情報をroutines.so
のリリースバージョンをビルドです:
gcc -g -fPIC -O2 routines.c -shared -o routines.so
(リリースバージョンを構築するために使用されたものは何でもフラグで-O2
を置き換えます)。
次に(gdb) add-symbol-file /path/to/release-g/routines.so $load_address
を使用してください($load_address
の代わりに(gdb) info shared routines.so
を使用してください)。
これにより、ソースレベルで「興味のあるポイント」をデバッグできます。これは、最適化されていないバージョンのデバッグ(コードのジャンプ、変数の最適化など)ではなく、アセンブリレベルでのデバッグよりも優れています。
ELFプラットフォームを使用している場合は、いつでもデバッグできるように、separate debuginfo filesでroutines.so
をビルドする必要があります。
関連する問題
- 1. GDBコマンドをパイプすることは可能ですか?
- 2. Firebase - アプリの接続状態を「クラウドリスナー」にすることは可能ですか?
- 3. 同様のボタンをポーリングに接続することは可能ですか
- 4. EclipseでJavaソースファイルをデバッグすることは可能ですか
- 5. Caffeのprototxtファイルを別のファイルに含めることは可能ですか?
- 6. NodeMCUとMicrosoft Azureイベントハブを接続することは可能ですか?
- 7. Azure AD B2CをInstagramと接続することは可能ですか?
- 8. IBM DevOpsサービスとRQMを接続することは可能ですか?
- 9. 2台のSonarqubeサーバーを接続することは可能ですか?
- 10. ロボットフレームワークを使用して別のリモートサーバーからリモートサーバーに接続することは可能ですか
- 11. 外部指紋スキャナをiPhoneに接続することは可能ですか?
- 12. AccessフォームをSQL Serverビューに接続することは可能ですか
- 13. lampp PMAをmysqldに接続することは可能ですか?
- 14. Zoieに接続したときに非リレーショナルデータベースとしてSOLRを使用することは可能ですか?
- 15. ハイブリッドモバイルアプリケーションでSony Camera Remote APIに接続することは可能ですか
- 16. XAPファイルからバージョン番号を取得することは可能ですか
- 17. facebookアプリケーションでローカルホストに接続することができます
- 18. ライブラリからmysqlに接続することは可能ですか?
- 19. mysqlに接続している間にモバイルでAndroidアプリケーションをテストすることは可能です
- 20. gdbインスタンスごとに1つのスレッドを持つことは可能ですか?
- 21. gdb/lldbを使って他のiOSアプリケーションをデバッグすることはできますか?
- 22. は、win32アプリケーションでactiveXコントロールを使用することは可能ですか?ことは可能であるが、
- 23. Firebaseデータベースに別のFirebaseプロジェクトに接続することはできますか?
- 24. アプリケーションをdrupalモジュールにすることは可能ですか?
- 25. ブロードキャストをアプリケーションに適用することは可能ですか?
- 26. pycharm \ intelijでアプリケーションをデバッグする前にスクリプトを 'ソース'することは可能ですか?
- 27. XHR、新しい接続を強制することは可能ですか?
- 28. Windows Mobile AppからサーバーDBに接続することは可能です
- 29. SilverlightアプリケーションでF5をキャッチすることは可能ですか?