首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >osx内核调试不能'malloc_get_all_zones‘

osx内核调试不能'malloc_get_all_zones‘
EN

Stack Overflow用户
提问于 2015-07-27 16:41:17
回答 1查看 294关注 0票数 0

我正在用lldbKDK做一些OSX内核调试。

当内核崩溃时,我想要查看区域,并搜索区域。所以我使用:

代码语言:javascript
复制
(lldb) command script import lldb.macosx.heap
(lldb) cstr_refs CSTRING

此命令在Ring3调试中始终有效,但在内核调试时,lldb给我一个错误:

代码语言:javascript
复制
error: error: use of undeclared identifier 'malloc_get_all_zones'
error: 1 errors parsing expression

脚本heap.py在内核中不可用?

在这种情况下如何搜索内核专区?

EN

回答 1

Stack Overflow用户

发布于 2015-08-04 09:09:08

一些更熟悉内核问题的人可能会告诉你如何从内核中获取你想要的信息。我可以回答关于"heap.py“的部分。它只能在调试userland程序时使用。它依赖于userland malloc实现的细节,并且它依赖于能够调用被调试对象中的函数,而这在调试内核时是不可能的。

请注意,如果您获得了KDK,那么您就拥有了用于mach内核的dSYM,它定义了一系列在内核的数据结构中探查的命令。也许他们中的一个会告诉你你想知道的。记住运行lldb命令:

代码语言:javascript
复制
(lldb) settings set target.load-script-from-symbol-file true

为了允许lldb从定义所有这些宏的dSYM中读取Python。然后,运行lldb help命令将显示所有特定于内核的命令。

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

https://stackoverflow.com/questions/31648523

复制
相关文章

相似问题

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