我试图调试(出于学习目的)用 C 语言编写的简单程序。我使用 vimspector(gdb) 作为调试器。
如何使用 vimspector 读取特定地址的内存?
我发现 vimspector 可以做到这一点(有人截图为证):
https://camo.githubusercontent.com/da69c1bda28db4e3f22f35ac9d52b22b1eab80afcfabd2003b98aefeb7e54929/68747470733a2f2f61736369696e656d612e6f72672f612f6573456e634178503435434a6d6f38456d31735174785259652e737667
一些调试适配器提供了一种转储与变量关联的进程内存的方法。这可以从变量和监视窗口完成:
- WinBar 选项“转储”
m映射(默认,可自定义) - vimspector#ReadMemory() 函数
我尝试调用函数 vimspector#ReadMemory,但每次都出错
:call vimspector#ReadMemory()
Cannot find memory reference for that
:call vimspector#ReadMemory(myvar)
E116: Invalid arguments for function vimspector#ReadMemory
:call vimspector#ReadMemory(0x7ffff7e959d7)
TypeError: vimspector.debug_session.DebugSession.ReadMemory() argument after ** must be a mapping, not str
当我尝试
<leader>m
什么都没发生。
我也发现了这个问题并通过谷歌搜索,找到了你的问题,但似乎没有人回答,通过几分钟的尝试,我找到了根本原因,你需要在变量或观察窗口中触发这个功能,默认情况下,他们布局在左侧。然后你可以在变量或地址上按
请注意,触发
希望对你有帮助