私が理解しているように、プログラム内の各関数シンボルには、アドレス空間に対応するメモリ範囲があります。 call
アセンブリ命令は、ip
とスタック上の他の情報をプッシュし、その範囲の先頭にジャンプします。GDBを使用して関数のメモリ範囲を取得する方法
GDBでデバッグ中にその範囲を取得する必要があります。私は簡単にinfo symbol
を使用して、与えられたアドレスまたは行に対応する関数の名前を得ることができます。私は逆:シンボル - >アドレス範囲が必要です。実際、TUIモードを使用してアセンブリコードをスクロールして関数の最後までスクロールし、最後の命令の近くの "<symbol_name>
+ <offset>
"アノテーションを見ても、それは正しい方法ではありません(それはもっと悪いGDB/MIを使用しています)。
GDBを使用してシンボルをそのメモリ範囲に一致させるにはどうすればよいですか?