This release adds new APIs for providing symbol information to drgn, support for the new Python 3.13 REPL, and a few important bug fixes.
New features:
- The
drgn.SymbolIndex
class was added. It provides an efficient implementation of a symbol finder for a static list of symbols. Contributed by Stephen Brennan. - The
drgn.helpers.linux.kallsyms
module was added. It provides two helpers,load_vmlinux_kallsyms()
andload_module_kallsyms()
, that can be used to look up symbols without full debugging information. Contributed by Stephen Brennan. - The CLI will now use the enhanced REPL added in Python 3.13 when available. This greatly improves the user experience with multiline editing, colorized output, and more. Contributed by Stephen Brennan.
- Linux 6.13 is now supported. No updates were required.
Bug fixes:
- Linux kernel stack traces now reliably continue through interrupt handlers as long as the kernel uses the ORC unwinder.
- The
slab_cache_for_each_allocated_object()
andslab_object_info()
helpers indrgn.helpers.linux.slab
now report cycles in SLUB freelists instead of getting stuck in an infinite loop. - QEMU guest memory dumps of the Linux kernel with KASLR disabled can now be debugged.
- The
css_for_each_child()
andcss_for_each_descendant_pre()
helpers indrgn.helpers.linux.cgroup
were fixed to include offlined css objects. Contributed by Michal Koutný. - The REPL now gracefully displays objects that cannot be read instead of failing with a
drgn.FaultError
. - A double reference count decrement in an error path of initializing the drgn Python bindings was fixed.
Documentation:
- Documentation for installing drgn on Arch Linux was updated now that drgn is officially packaged on Arch Linux. Contributed by Christian Heusel.
- Documentation for installing drgn and debugging symbols on Oracle Linux was added. Contributed by Stephen Brennan.
contrib
directory:
contrib/bpf_inspect.py
was fixed to handle Linux < 5.10 when printing BPF programs. Contributed by Ze Gao.contrib/cgroup.py
now has astat
subcommand for printing the number of online and dying css objects. Contributed by Michal Koutný.contrib/cgroup.py
'sbpf
subcommand was fixed to not access an array out of bounds on Linux >= 5.15.contrib/ptdrgn.py
was fixed to gracefully display objects that cannot be read. Contributed by Stephen Brennan.
Internal:
- Many preparations were made for the upcoming module API.
- The internal
drgndoc
Sphinx extension was fixed to handle deprecatedast
nodes that were removed in Python 3.14.