如何让GDB前进到正确的位置?

时间:2015-03-07 12:43:50

标签: assembly gdb microblaze ovp

我正在使用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)但是有更通用的解决方案吗?

1 个答案:

答案 0 :(得分:2)

advance(和break)命令的参数是函数名,行号,标签或*后跟地址表达式。

指定函数名称将使gdb在函数的序言后停止。如果您想停在PTE_entry_empty功能的确切起始地址,您可以执行

(gdb) advance *PTE_entry_empty

使用*似乎违反直觉,因为没有涉及间接。只需将其视为关键字。