为啥我在lldb中输入图像查找<地址>时没有输出? [关闭]

Posted

技术标签:

【中文标题】为啥我在lldb中输入图像查找<地址>时没有输出? [关闭]【英文标题】:Why isn't there an output when I enter image lookup <address > in lldb? [closed]为什么我在lldb中输入图像查找<地址>时没有输出? [关闭] 【发布时间】:2019-10-10 02:19:36 【问题描述】:

所以当我在 lldb 中输入命令图像查找时,我没有得到任何输出。顺便说一句,我正在使用调试服务器。我在谷歌上搜索了这个问题,没有找到任何东西。

【问题讨论】:

【参考方案1】:

通常这意味着地址是堆栈或堆内存,所以它不在图像列表中。 vmmap 工具(从终端运行)是查看应用程序中分配内存的好方法。像这样运行它:

 $ vmmap <PID> <ADDRESS> 

如果这是分配的内存,vmmap 会告诉你它是如何分配的。 lldb 有一个memory region 命令,但来自 vmmap 的数据目前更有用...

您可以使用 macOS malloc 库的堆栈日志记录功能来跟踪它的分配位置。您必须在您的环境中使用 MallocStackLoggingNoCompact 启动应用程序。然后你可以在终端中使用malloc_history,或者在 lldb 中使用:

(lldb) env MallocStackLoggingNoCompact=1
(lldb) run
...
(lldb) command script import lldb.macosx.heap
(lldb) malloc_info -s 0x100300000
0x0000000100300000: malloc(   112) -> 0x100300000
stack[0]: addr = 0x100300000, type=malloc, frames:
     [0] 0x00007fff68e0c601 libsystem_malloc.dylib`malloc_zone_malloc + 140
     [1] 0x00007fff68e0c558 libsystem_malloc.dylib`malloc + 21
     [2] 0x0000000100000f59 foo`main + 25 at foo.c:7:10
     [3] 0x00007fff68c52341 libdyld.dylib`start + 1

【讨论】:

甚至 malloc_info 命令也没有给我关于这个地址的信息。它适用于其他地址,但不适用于这个。

以上是关于为啥我在lldb中输入图像查找<地址>时没有输出? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

LLDB 的数组地址

关于php配置问题,为啥我配置好php和apache之后,我在浏览器输入地址访问php页面变成下载php页面了?

lldb - 在调试时将十六进制值作为输入传递

反汇编查找内存地址

为啥我在DIV中输入文字不在DIV中

当我在图像周围放置一个 div 时,为啥底部有间距? [复制]