drgn可编程调试器
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++ 支持正在进行中。
评论