1

ダンプを検査する場合はinfo registers、gdbのレジスタの値を確認するために使用しますが、プログラムがたとえばアドレス0x76FD6908で実行されているときに、レジスタに格納されている値を確認できますか?たとえば、pcが特定のアドレスにある場合にのみレジスタの値が必要です

4

2 に答える 2

2

2つのオプションがあります。

  1. frame X、次にinfo registers。これにより、そのスタックフレームにあったすべてのレジスタが得られます。一部のレジスタが保存されない場合があることに注意してください。その場合、GDBはそのフレームで間違った値を提供します。
  2. info frame X。これにより、そのフレームだけで保存されたレジスタがわかります。

    Stack frame at 0x7fff5f400150:
     rip = 0x100000eed in foo; saved rip 0x100000eed
     called by frame at 0x7fff5f400170, caller of frame at 0x7fff5f400130
     Arglist at 0x7fff5f400148, args: 
     Locals at 0x7fff5f400148, Previous frame's sp is 0x7fff5f400150
     Saved registers:
      rbp at 0x7fff5f400140, rip at 0x7fff5f400148
    
于 2013-03-26T21:37:03.393 に答える
0

gdbの実行中にメモリの特定の領域を確認したいだけの場合は、xコマンドを使用します。このリンクは役立つかもしれません:

http://www.delorie.com/gnu/docs/gdb/gdb_56.html

このように調べられた記憶は「レジスター」とは呼ばれませんが、これはあなたが意味したことですか?

于 2013-03-26T21:28:48.607 に答える