2

我正在使用 GDB 和在 OVPsim 下运行的 Microblaze 程序集。我有以下问题:

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

即,虽然我要求 GDB 推进到一个特定的符号,但它远远超出了它——甚至似乎知道它已经远远超出了它。我想我可以要求它前进到特定地址(在本例中为 0x574),但有更通用的解决方案吗?

4

1 回答 1

2

advance(and ) 命令的参数break可以是函数名、行号、标签或*后跟地址表达式的 a。

指定函数名将使 gdb 在函数的序言之后停止。如果你想停在PTE_entry_empty函数的确切起始地址,你可以这样做

(gdb) advance *PTE_entry_empty

的使用*可能看起来违反直觉,因为不涉及间接。只需将其视为关键字即可。

于 2015-03-07T15:41:52.820 回答