Skip to content

drgn 0.0.30

Latest
Compare
Choose a tag to compare
@osandov osandov released this 18 Dec 23:07
· 18 commits to main since this release

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() and load_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() and slab_object_info() helpers in drgn.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() and css_for_each_descendant_pre() helpers in drgn.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 a stat subcommand for printing the number of online and dying css objects. Contributed by Michal Koutný.
  • contrib/cgroup.py's bpf 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 deprecated ast nodes that were removed in Python 3.14.