drgn(发音为“dragon”)是一个强调可编程性的调试器。drgn公开程序中的类型和变量,以便在Python中轻松、富有表现力地编写脚本。例如,你可以调试Linux内核:
>>>fromdrgn.helpers.linuximportlist_for_each_entry>>>formodinlist_for_each_entry('structmodule',...prog['modules'].address_of_(),...'list'):...ifmod.refcnt.counter>10:...print(mod.name)...(char[56])"snd"(char[56])"evdev"(char[56])"i915"尽管 GDB 等其他调试器具有脚本支持,但drgn的目标是使脚本编写尽可能自然,使调试感觉就像编码一样。这使得它非常适合在大型程序中内省复杂的、相互关联的状态。它还被设计为一个库,可用于构建调试和自省工具;查看官方工具。drgn是在 Meta 开发的,用于调试Linux内核(作为崩溃实用程序的替代方案),但它也可以调试用C编写的用户空间程序。C++支持正在进行中。点击空白处退出提示
评论