forked from osandov/drgn
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'refs/heads/upstream-HEAD' into repo-HEAD
- Loading branch information
Showing
26 changed files
with
1,448 additions
and
316 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
0.0.26 (Released March 11th, 2024) | ||
==================================== | ||
|
||
These are some of the highlights of drgn 0.0.26. See the `GitHub release | ||
<https://github.com/osandov/drgn/releases/tag/v0.0.26>`_ for the full release | ||
notes, including more improvements and bug fixes. | ||
|
||
.. highlight:: pycon | ||
|
||
Miscellaneous Helpers | ||
--------------------- | ||
|
||
This release added several new Linux kernel helpers with no particular theme: | ||
|
||
- :func:`~drgn.helpers.linux.printk.print_dmesg()`, a shortcut for printing the | ||
kernel log buffer. | ||
- :func:`~drgn.helpers.linux.idr.idr_for_each_entry()`, a shortcut for | ||
iterating over an IDR and casting its entries to a specific type. | ||
- :func:`~drgn.helpers.linux.stackdepot.stack_depot_fetch()` for getting stack | ||
traces from the storage used by KASAN and other kernel debugging tools. This | ||
was contributed by Peter Collingbourne. | ||
- :func:`~drgn.helpers.linux.plist.plist_head_empty()`, | ||
:func:`~drgn.helpers.linux.plist.plist_node_empty()`, | ||
:func:`~drgn.helpers.linux.plist.plist_first_entry()`, | ||
:func:`~drgn.helpers.linux.plist.plist_last_entry()`, | ||
:func:`~drgn.helpers.linux.plist.plist_for_each()`, and | ||
:func:`~drgn.helpers.linux.plist.plist_for_each_entry()`, helpers for working | ||
with the kernel's priority-sorted lists. | ||
|
||
``fsrefs.py`` Tool | ||
------------------ | ||
|
||
The ``fsrefs.py`` tool was added to the ``tools`` directory. It prints | ||
information about everything that is referencing a file or filesystem. This is | ||
similar to :manpage:`fuser(1)` and :manpage:`lsof(8)`, but it can find more | ||
since it has access to kernel internals. | ||
|
||
.. code-block:: console | ||
$ ./tools/fsrefs.py --inode /dev/urandom | ||
pid 1349 (bluetoothd) fd 16 (struct file *)0xffff8881458cf000 | ||
pid 1368 (udisksd) fd 15 (struct file *)0xffff888145c13100 | ||
... | ||
$ ./tools/fsrefs.py --super-block /run | ||
mount /run (struct mount *)0xffff8881015cc140 | ||
pid 1 (systemd) fd 256 (struct file *)0xffff8881012f3d00 /run/initctl | ||
pid 1 (systemd) fd 380 (struct file *)0xffff88810bf88800 /run/dmeventd-server | ||
pid 1 (systemd) fd 385 (struct file *)0xffff88810bf88f00 /run/dmeventd-client | ||
mount /run (mount namespace 4026532545) (struct mount *)0xffff8881474028c0 | ||
pid 2135770 (systemd-journal) vma 0x7f7d94f2a000-0x7f7d94f2b000 (struct file *)0xffff88813925bf00 /run/systemd/journal/kernel-seqnum | ||
pid 2135770 (systemd-journal) vma 0x7f7d94f2b000-0x7f7d94f2c000 (struct file *)0xffff88813925a100 /run/systemd/journal/seqnum | ||
... | ||
``fsrefs.py`` currently checks: | ||
|
||
- File descriptors | ||
- Task working directories | ||
- Task root directories | ||
- Memory mappings | ||
- Filesystem mounts | ||
- `binfmt_misc <https://docs.kernel.org/admin-guide/binfmt-misc.html>`_ | ||
- :manpage:`loop(4)` devices | ||
- Swap files | ||
- `uprobes <https://docs.kernel.org/trace/uprobetracer.html>`_ | ||
|
||
It will be extended to check more as the need arises, so feel free to report | ||
anything it missed. | ||
|
||
(Note that as opposed to the ``contrib`` directory, scripts in the ``tools`` | ||
directory are regularly maintained and tested.) | ||
|
||
DWARF Package Files | ||
------------------- | ||
|
||
drgn now supports split DWARF package (.dwp) files. These are generated by the | ||
``dwp`` and ``llvm-dwp`` tools. | ||
|
||
Linux 6.8 Support | ||
----------------- | ||
|
||
Linux 6.8 changed some filesystem internals in a way that broke a couple of | ||
drgn helpers. Here are some errors you might see with older versions of drgn | ||
that are fixed in this release. | ||
|
||
From :func:`~drgn.helpers.linux.fs.path_lookup()` or | ||
:func:`~drgn.helpers.linux.fs.for_each_mount()` (fixed by Johannes Thumshirn):: | ||
|
||
AttributeError: 'struct mnt_namespace' has no member 'list' | ||
|
||
From :func:`~drgn.helpers.linux.fs.path_lookup()`:: | ||
|
||
AttributeError: 'struct dentry' has no member 'd_subdirs' | ||
|
||
Python 3.13 Support | ||
------------------- | ||
|
||
Python 3.13, currently in alpha, removed or changed some private APIs | ||
(``_PyDict_GetItemIdWithError()``, ``_PyDict_SetItemId()``, and | ||
``_PyLong_AsByteArray()``) that drgn depended on, which caused build failures. | ||
This was fixed by using public APIs instead. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.