drgn可编程调试器

联合创作 · 2023-10-01

drgn(发音为“dragon”)是一个强调可编程性的调试器。drgn 公开程序中的类型和变量,以便在 Python 中轻松、富有表现力地编写脚本。例如,你可以调试 Linux 内核:

>>> from drgn.helpers.linux import list_for_each_entry
>>> for mod in list_for_each_entry('struct module',
...                                prog['modules'].address_of_(),
...                                'list'):
...    if mod.refcnt.counter > 10:
...        print(mod.name)
...
(char [56])"snd"
(char [56])"evdev"
(char [56])"i915"

尽管 GDB 等其他调试器具有脚本支持,但 drgn 的目标是使脚本编写尽可能自然,使调试感觉就像编码一样。这使得它非常适合在大型程序中内省复杂的、相互关联的状态。它还被设计为一个库,可用于构建调试和自省工具;查看官方工具

drgn 是在 Meta 开发的,用于调试 Linux 内核(作为崩溃实用程序的替代方案),但它也可以调试用 C 编写的用户空间程序。C++ 支持正在进行中。

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报