如何让 GDB 前进到正确的位置?
How can I get GDB to advance to the correct place?
我在 OVPsim 下使用 GDB 和 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),但是有更通用的解决方案吗?
advance
(和break
)命令的参数可以是函数名、行号、标签,或者是 *
后跟地址表达式。
指定函数名将使 gdb 在函数序言后停止。如果想停在PTE_entry_empty
函数的确切起始地址,可以做
(gdb) advance *PTE_entry_empty
*
的使用似乎违反直觉,因为不涉及间接寻址。就当是关键字吧。
我在 OVPsim 下使用 GDB 和 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),但是有更通用的解决方案吗?
advance
(和break
)命令的参数可以是函数名、行号、标签,或者是 *
后跟地址表达式。
指定函数名将使 gdb 在函数序言后停止。如果想停在PTE_entry_empty
函数的确切起始地址,可以做
(gdb) advance *PTE_entry_empty
*
的使用似乎违反直觉,因为不涉及间接寻址。就当是关键字吧。