首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lldb脚本:如何从文字地址获取lldb.SBValue

lldb脚本:如何从文字地址获取lldb.SBValue
EN

Stack Overflow用户
提问于 2020-07-20 16:25:03
回答 1查看 96关注 0票数 1

给定一个内存地址,我想从lldb脚本打印它的内容。

我尝试了不同的方法来获得给定地址的SBValue,但它们都不适用于我,即

代码语言:javascript
复制
buffer = lldb.SBData()
buffer.CreateDataFromCString(lldb.eByteOrderBig, 10, "0x00007fffe45e3000")

但是当我去查询这个对象时,它什么也没有显示。

我还尝试将地址分配给lldb中的一个方便变量,然后使用FindVariable(),但该变量为空

代码语言:javascript
复制
expr auto $buffer =  function_returning_address();
>>> buffer = lldb.frame.FindVariable("$buffer")

但在这里,变量没有名称、类型等,我也尝试使用SBValue.SetValueFromCString()

代码语言:javascript
复制
>>> buffer.SetValueFromCString("0x00007fffe45e3000", error)
False
>>> print error
error: Could not get value: No value

我没有找到太多关于Google的文档,我只是从lldb脚本开始,任何建议都很感谢。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-21 01:59:13

有两种方法可以做到这一点。如果需要原始数据,可以要求SBProcess使用SBProcess.ReadMemory将内存作为Python字节数组读取。如果您希望将该地址的数据表示为某种类型的实例,则可以使用SBTarget.CreateValueFromAddress。要查找传入的类型,请使用SBTarget.FindFirstType...

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62991386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档