2

OVPsim で実行されている Microblaze アセンブリで GDB を使用しています。次の問題があります。

(gdb) advance PTE_entry_empty
0x00000598 in PTE_entry_empty()
1: x/i $pc
=> 0x598 <PTE_entry_empty+36>: mfs    r6, rear

つまり、GDB に特定のシンボルに進むように依頼しても、GDB はそれをはるかに超えています。特定のアドレス (この場合は 0x574) に進むように依頼することもできると思いますが、より一般的な解決策はありますか?

4

1 に答える 1

2

advance(and ) コマンドの引数breakは、関数名、行番号、ラベル、または*アドレス式が後に続くものです。

関数名を指定すると、関数のプロローグの後で gdb が停止します。関数の正確な開始アドレスで停止したい場合は、次のPTE_entry_emptyことができます

(gdb) advance *PTE_entry_empty

の使用は*、間接的な関係がないため、直観に反するように見えるかもしれません。あくまでもキーワードと考えてください。

于 2015-03-07T15:41:52.820 に答える