ロード時に初期化される構造を持つオープンソースライブラリをデバッグしています。構造体のメンバーの1つは関数ポインタです。どの機能を指しているのかを知る最も簡単な方法は何ですか?たとえば、関数ポインタの値を出力すると、関数の名前を見つけるために使用できるツールがありますか?私は組み込みLinuxシステムでこれをやっていますが、GDBは利用できません(まだ)。このアドレスはどの機能を指していますか?
2
A
答えて
5
リンカはマップファイルを出力できます。あなたの関数が動き回っていないと仮定すると、そこのアドレスを調べることができます。マップファイルを作成するオプションはさまざまです。私のMacでは-map
、Linux man pageは-Map
と言います。
編集上の問題を除いて、ソースレベルのデバッグソリューションがない場合は、最初にの作業が必要です。開発に適したインフラが整うまで、他の作業をすべて停止します。経営幹部に重要だと納得させるために戦わなければならないかもしれませんが、うまくいけばそれを理解できるようにすることができます。
1
addr2line commandが便利だと思います。
関連する問題
- 1. "&ref_var"はどのアドレスに指していますか?
- 2. このバッファがアドレス指定不可能なバイトを指しているのはなぜですか?
- 3. この機能割り当てはどのように機能しますか?
- 4. セグメンテーションフォルト。なぜこのポインタは無効なアドレスを指していますか?
- 5. AddImplicitRequiredAttributeForValueTypesが実際にどのように機能し、どのように機能していますか?ここ
- 6. __block指定子はどのように機能しますか?
- 7. jquery指向オブジェクトはどのように機能しますか?
- 8. getJSONは一部のアドレスでは機能しますが、他のアドレスでは機能しません
- 9. これら3つの機能はどのように連携して機能していますか?
- 10. ここで継承はどのように機能していますか?
- 11. この例ではビットシフトはどのように機能していますか?
- 12. 返品のない機能 - この機能はどのように機能しますか?
- 13. この機能は実際に何をしていますか?
- 14. この機能は何をしていますか?
- 15. ここでmorphToManyはどのように機能しますか?
- 16. cv2.floodfillはどのように機能しますか?ここ
- 17. このソート機能はどのように機能しますか?
- 18. この単語置換機能はどのように機能しますか?
- 19. この機能はどのように機能しますか? char * getname(); C++
- 20. このトランスポーズ機能はどのように機能しますか?
- 21. 「this」はこのコンテキストでどのように機能していますか?
- 22. このコマンドで@記号はどのように機能していますか?
- 23. この「検索」ステートメントはどのように機能していますか?
- 24. これらのマトリックスはどのように機能していますか?
- 25. このSwingコードはどのように機能していますか?
- 26. ファイル名の指定が機能していませんか?
- 27. F#は&とポインタ逆参照機能のアドレスを持っていますか?
- 28. タイムインはここでは機能しませんが、タイムアウトが機能しているのはなぜですか?
- 29. Hotmail(アドレスTo)のオートコンプリート、それはどのように機能していますか?
- 30. この機能は何をしますか(どのように機能しますか)?
私が持っているアドレスは共有ライブラリの関数です。私はライブラリのベースアドレスを取得し、ポインタからそれを減算する必要があると推測しています。共有ライブラリのベースアドレスを取得する最も簡単な方法は何ですか? – waffleman
addr2lineを試しましたか?実行可能ファイルが参照する共有ライブラリを追跡し、答えを出す必要があります... – Nemo