监控命令后如何刷新寄存器

问题描述 投票:0回答:1

我将 gdb 与远程目标一起使用

target extended-remote localhost:3333
cd project
file build/project.elf
monitor reset halt
load
print $pc

这工作正常,$pc 指向 Reset_Handler

但是启动然后中断程序后,我重置了目标

monitor reset halt
print $pc
monitor reg pc

现在 $pc 仍然显示我中断程序的地址,而不是 Reset_Handler。

monitor reg pc
显示了正确的地址(Reset_Handler)。 使用
next
之后,gdb 更新 $pc 并再次显示正确的值。

问题似乎是,gdb 在执行

monitor
命令后不会更新寄存器。 如果我重新连接到目标,这些值就会更新

target extended-remote localhost:3333
print $pc
monitor reg pc

但这似乎有点矫枉过正,可能会有副作用。

是否有任何简单的命令或技巧可以重新刷新寄存器的正确值?

gdb openocd
1个回答
0
投票

Google 对于这个问题完全没用(我浪费了两天),但是 chat-GPT 立刻给了我正确的答案(我太老了,无法适应这个新东西)。

maintenance flush register-cache
© www.soinside.com 2019 - 2024. All rights reserved.