@@ -66,17 +66,17 @@ Package Manager
6666
6767drgn can be installed using the package manager on some Linux distributions.
6868
69- .. image :: https://repology.org/badge/vertical-allrepos/drgn.svg 
69+ .. image :: https://repology.org/badge/vertical-allrepos/drgn.svg?exclude_unsupported=1  
7070    :target:  https://repology.org/project/drgn/versions 
7171    :alt:  Packaging Status 
7272
73- * Fedora  >= 32 
73+ * Fedora, RHEL/CentOS Stream  >= 9 
7474
7575  .. code-block :: console 
7676
7777      $ sudo dnf install drgn 
7878
79-  * RHEL/CentOS >= 8 
79+  * RHEL/CentOS < 9 
8080
8181  `Enable EPEL  <https://docs.fedoraproject.org/en-US/epel/#_quickstart >`_. Then:
8282
@@ -86,32 +86,35 @@ drgn can be installed using the package manager on some Linux distributions.
8686
8787 * Oracle Linux >= 8
8888
89-   Enable the ``ol8_addons `` or ``ol9_addons `` repository and install drgn :
89+   Enable the ``ol8_addons `` or ``ol9_addons `` repository. Then :
9090
9191  .. code-block :: console 
9292
9393      $ sudo dnf config-manager --enable ol8_addons  # OR: ol9_addons 
9494      $ sudo dnf install drgn 
9595
96-    Drgn  is also available for Python versions in application streams. For
96+    drgn  is also available for Python versions in application streams. For
9797  example, use ``dnf install python3.12-drgn `` to install drgn for Python 3.12.
9898  See the documentation for drgn in `Oracle Linux 9 
9999  <https://docs.oracle.com/en/operating-systems/oracle-linux/9/drgn/how_to_install_drgn.html> `_
100100  and `Oracle Linux 8 
101101  <https://docs.oracle.com/en/operating-systems/oracle-linux/8/drgn/how_to_install_drgn.html> `_
102102  for more information.
103103
104- * Arch Linux 
104+ * Debian >= 12 (Bookworm)/Ubuntu >= 24.04 (Noble Numbat) 
105105
106106  .. code-block :: console 
107107
108-       $ sudo pacman -S  drgn 
108+       $ sudo apt install python3- drgn 
109109
110-  * Debian >= 12 (Bookworm)
110+    To get the latest version on Ubuntu, enable the `michel-slm/kernel-utils PPA 
111+   <https://launchpad.net/~michel-slm/+archive/ubuntu/kernel-utils> `_ first.
112+ 
113+ * Arch Linux
111114
112115  .. code-block :: console 
113116
114-     $ sudo apt install python3- drgn 
117+        $ sudo pacman -S  drgn 
115118
116119 * Gentoo
117120
@@ -125,15 +128,6 @@ drgn can be installed using the package manager on some Linux distributions.
125128
126129      $ sudo zypper install python3-drgn 
127130
128-  * Ubuntu
129- 
130-   Enable the `michel-slm/kernel-utils PPA  <https://launchpad.net/~michel-slm/+archive/ubuntu/kernel-utils >`_.
131-   Then:
132- 
133-   .. code-block :: console 
134- 
135-       $ sudo apt install python3-drgn 
136- 
137131 pip
138132^^^ 
139133
@@ -156,19 +150,21 @@ Note that RHEL/CentOS 6, Debian Stretch, Ubuntu Trusty, and Ubuntu Xenial (and
156150older) ship Python versions which are too old. Python 3.6 or newer must be
157151installed.
158152
153+ .. _installation-from-source :
154+ 
159155From Source
160156^^^^^^^^^^^ 
161157
162158To get the development version of drgn, you will need to build it from source.
163159First, install dependencies:
164160
165- * Fedora
161+ * Fedora, RHEL/CentOS Stream >= 9 
166162
167163  .. code-block :: console 
168164
169-       $ sudo dnf install autoconf automake check-devel elfutils-devel gcc git libkdumpfile-devel libtool make pkgconf python3 python3-devel python3-pip python3-setuptools 
165+       $ sudo dnf install autoconf automake check-devel elfutils-debuginfod-client-devel elfutils- devel gcc git libkdumpfile-devel libtool make pkgconf python3 python3-devel python3-pip python3-setuptools 
170166
171-  * RHEL/CentOS/ Oracle Linux
167+  * RHEL/CentOS < 9,  Oracle Linux
172168
173169  .. code-block :: console 
174170
@@ -191,10 +187,11 @@ First, install dependencies:
191187
192188  .. code-block :: console 
193189
194-       $ sudo apt install autoconf automake check gcc git liblzma-dev libelf-dev libdw-dev libtool make pkgconf python3 python3-dev python3-pip python3-setuptools zlib1g-dev 
190+       $ sudo apt install autoconf automake check gcc git libdebuginfod-dev libkdumpfile-dev  liblzma-dev libelf-dev libdw-dev libtool make pkgconf python3 python3-dev python3-pip python3-setuptools zlib1g-dev 
195191
196-    Optionally, install libkdumpfile from source if you want support for the
197-   makedumpfile format.
192+    On Debian <= 11 (Bullseye) and Ubuntu <= 22.04 (Jammy Jellyfish),
193+   ``libkdumpfile-dev `` is not available, so you must install libkdumpfile from
194+   source if you want support for the makedumpfile format.
198195
199196* Arch Linux
200197
@@ -212,7 +209,7 @@ First, install dependencies:
212209
213210  .. code-block :: console 
214211
215-       $ sudo zypper install autoconf automake check-devel gcc git libdw-devel libelf-devel libkdumpfile-devel libtool make pkgconf python3 python3-devel python3-pip python3-setuptools 
212+       $ sudo zypper install autoconf automake check-devel gcc git libdebuginfod-devel  libdw-devel libelf-devel libkdumpfile-devel libtool make pkgconf python3 python3-devel python3-pip python3-setuptools 
216213
217214 Then, run:
218215
@@ -233,20 +230,20 @@ Quick Start
233230
234231..  start-quick-start
235232
236-  drgn debugs the running kernel by default; run ``sudo  drgn ``. To debug a
237- running program, run ``sudo  drgn -p $PID ``. To debug a core dump (either a
238- kernel  vmcore or a userspace core dump), run ``drgn -c $PATH ``. Make sure to
239- ` install  debugging symbols
233+  drgn debugs the running kernel by default; simply  run ``drgn ``. To debug a
234+ running program, run ``drgn -p $PID ``. To debug a core dump (either a kernel 
235+ vmcore or a userspace core dump), run ``drgn -c $PATH ``. Make sure to ` install 
236+ debugging symbols 
240237<https://drgn.readthedocs.io/en/latest/getting_debugging_symbols.html> `_ for
241238whatever you are debugging.
242239
243- Then, you can access variables in the program with ``prog[' name' ] `` and access
240+ Then, you can access variables in the program with ``prog[" name" ] `` and access
244241structure members with ``. ``:
245242
246243.. code-block :: pycon 
247244
248-     $ sudo  drgn 
249-     >>> prog[' init_task' ].comm 
245+     $ drgn 
246+     >>> prog[" init_task" ].comm 
250247    (char [16])"swapper/0" 
251248
252249 You can use various predefined helpers:
@@ -260,14 +257,14 @@ You can use various predefined helpers:
260257    [b'findmnt', b'-p'] 
261258
262259 You can get stack traces with ``stack_trace() `` and access parameters or local
263- variables with ``trace[' name' ] ``:
260+ variables with ``trace[" name" ] ``:
264261
265262.. code-block :: pycon 
266263
267264    >>> trace = stack_trace(task) 
268265    >>> trace[5] 
269266    #5 at 0xffffffff8a5a32d0 (do_sys_poll+0x400/0x578) in do_poll at ./fs/select.c:961:8 (inlined) 
270-     >>> poll_list = trace[5][' list' ] 
267+     >>> poll_list = trace[5][" list" ] 
271268    >>> file = fget(task, poll_list.entries[0].fd) 
272269    >>> d_path(file.f_path.address_of_()) 
273270    b'/proc/115/mountinfo' 
0 commit comments