我正在用lldb和KDK做一些OSX内核调试。
当内核崩溃时,我想要查看区域,并搜索区域。所以我使用:
(lldb) command script import lldb.macosx.heap
(lldb) cstr_refs CSTRING此命令在Ring3调试中始终有效,但在内核调试时,lldb给我一个错误:
error: error: use of undeclared identifier 'malloc_get_all_zones'
error: 1 errors parsing expression脚本heap.py在内核中不可用?
在这种情况下如何搜索内核专区?
发布于 2015-08-04 09:09:08
一些更熟悉内核问题的人可能会告诉你如何从内核中获取你想要的信息。我可以回答关于"heap.py“的部分。它只能在调试userland程序时使用。它依赖于userland malloc实现的细节,并且它依赖于能够调用被调试对象中的函数,而这在调试内核时是不可能的。
请注意,如果您获得了KDK,那么您就拥有了用于mach内核的dSYM,它定义了一系列在内核的数据结构中探查的命令。也许他们中的一个会告诉你你想知道的。记住运行lldb命令:
(lldb) settings set target.load-script-from-symbol-file true为了允许lldb从定义所有这些宏的dSYM中读取Python。然后,运行lldb help命令将显示所有特定于内核的命令。
https://stackoverflow.com/questions/31648523
复制相似问题