Skip to content
drgn 0.0.10

New features:

* The elfutils DWARF stack unwinder was replaced with our own.
* Stack unwinding using the Linux kernel's ORC data was added. This
  makes it possible to unwind through functions written in assembly
  (including interrupt handlers).
* StackFrame.interrupted was added to distinguish between stack frames
  created by a function call and stack frames for a signal, interrupt,
  etc.

API changes:

* Support for complex types was removed. It was previously broken and
  incomplete. A proper implementation may be re-added if there is demand
  for it.
* The byte order (a.k.a. endianness) property of objects was reworked so
  that it is now defined for scalars rather than compound objects.
    * A byteorder argument was added to Program.int_type(),
      Program.bool_type(), Program.float_type(), and
      Program.pointer_type(). Type.byteorder was added to the
      corresponding types.
    * Object.byteorder_ was removed, as was the byteorder argument to
      Object().

Fixes:

* A couple of cases where debugging information for predeclared types
  was not correctly parsed were fixed.
* Variables and functions from an .init section in a Linux kernel module
  are now reported with the address where they were last loaded. (.init
  sections are freed after module initialization.)
* Creation of structure objects containing unnamed members from a Python
  object (Object(prog, "struct foo", {...})) was fixed. In 0.0.9, this
  would place members in the unnamed member at the wrong location.
* TypeMember.__repr__() was fixed to include the bit field size if the
  member is a bit field. This was omitted by mistake in 0.0.9.
* drgn_object_dereference_offset() and drgn_object_member_dereference()
  were fixed to be properly exported from libdrgn.so.
* Unused declarations of drgn_type_eq() and drgn_qualified_type_eq()
  were removed from drgn.h. The definitions were removed in 0.0.9.

Packaging improvements:

* The patched version of elfutils bundled with drgn was removed. drgn
  now uses the system's libelf and libdw. Version 0.165 or newer is
  required.
* The autotools output (configure, Makefile.in, etc.) was added to
  source distributions. autotools is no longer required for installing
  drgn from a source distribution.