2016-08-23 3 views
2

私は:unstrippedバイナリからgdbにシンボルを与える方法は?

  • Iを剥離バイナリ(gdp -p PID)を実行に接続することができ

ストリップされていないバイナリ

  • GDB
  • を実行している剥離バイナリ。実行中のプロセスに接続されているgdbにunstrippedバイナリからシンボルを与える方法はありますか?

  • +1

    'シンボルファイル'を使ってみてください。あなたの問題を解決するかどうかは分かりません。しかし、このコマンドはシンボルをファイルからロードします。 –

    +0

    素晴らしい!できます :-) – vladon

    答えて

    2

    これを実行する主な方法は2つあります。

    一つの方法は、ストリップされていない実行ファイルにはgdbを起動し、添付することです:

    $ gdb unstripped 
    (gdb) attach 12345 
    

    この方法は簡単です!しかし、隠された危険性があります。これは、あなたが間違って剥ぎ取られたプログラムとアンストリップされたプログラムが不一致で、非常に混乱しているデバッグセッションにつながる可能性があるということです。

    別の方法は、デバッグ情報をストリッピング時に別々のファイルに適切に分割する時間を費やすことです。 instructions in the gdb manualがあります。

    この方法では、必ずbuild-id機能を使用してください。これを適切に行うと、アーカイブに別のデバッグ情報があることをgdbに指示するだけで、gdbが適切な情報を自動的に取得します。

    このアプローチの主な利点は、debuginfoの不一致の可能性を避けることです。 FWIWこれは、ディストリビューションがdebuginfoアーカイブを構築するために使用するものです。

    関連する問題