@@ -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- >= 8 
79+ < 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
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- 
110+ 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
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- 
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
138132^^^ 
139133
@@ -152,27 +146,29 @@ This will install a binary wheel by default. If you get a build error, then pip
152146wasn't able to use the binary wheel. Install the dependencies listed `below 
153147<#from-source> `_ and try again.
154148
155- Note that RHEL/CentOS 6, Debian Stretch, Ubuntu Trusty, and Ubuntu Xenial (and
156- older) ship Python versions which are too old. Python 3.6 or newer must be
157- installed.
149+ Note that RHEL/CentOS 7, Debian 10 ("buster"), and Ubuntu 18.04 ("Bionic
150+ Beaver") (and older) ship Python versions which are too old. Python 3.8 or
151+ newer must be installed.
152+ 
153+ .. _installation-from-source :
158154
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 xz-devel  
170166
171- / Oracle Linux
167+  < 9,  Oracle Linux
172168
173169  .. code-block :: console 
174170
175-       $ sudo dnf install autoconf automake check-devel elfutils-devel gcc git libtool make pkgconf python3 python3-devel python3-pip python3-setuptools 
171+       $ sudo dnf install autoconf automake check-devel elfutils-devel gcc git libtool make pkgconf python3 python3-devel python3-pip python3-setuptools xz-devel  
176172
177173libkdumpfile-devel `` from EPEL on RHEL/CentOS >= 8 or
178174  install `libkdumpfile  <https://github.com/ptesarik/libkdumpfile >`_ from
@@ -191,28 +187,29 @@ 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- 
197-   makedumpfile format.
192+ 
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
201198  .. code-block :: console 
202199
203-       $ sudo pacman -S --needed autoconf automake check gcc git libelf libkdumpfile libtool make pkgconf python python-pip python-setuptools 
200+       $ sudo pacman -S --needed autoconf automake check gcc git libelf libkdumpfile libtool make pkgconf python python-pip python-setuptools xz  
204201
205202
206203
207204  .. code-block :: console 
208205
209-       $ sudo emerge --noreplace --oneshot dev-build/autoconf dev-build/automake dev-libs/check dev-libs/elfutils sys-devel/gcc dev-vcs/git dev-libs/libkdumpfile dev-build/libtool dev-build/make dev-python/pip virtual/pkgconfig dev-lang/python dev-python/setuptools 
206+       $ sudo emerge --noreplace --oneshot dev-build/autoconf dev-build/automake dev-libs/check dev-libs/elfutils sys-devel/gcc dev-vcs/git dev-libs/libkdumpfile dev-build/libtool dev-build/make dev-python/pip virtual/pkgconfig dev-lang/python dev-python/setuptools app-arch/xz-utils  
210207
211208
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 xz-devel  
216213
217214
218215
@@ -233,20 +230,20 @@ Quick Start
233230
234231..  start-quick-start
235232
236- sudo  drgn
237- running program, run ``sudo  drgn -p $PID
238- kernel  vmcore or a userspace core dump), run ``drgn -c $PATH ``. Make sure to
239- ` install  debugging symbols
233+ 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
@@ -260,14 +257,14 @@ You can use various predefined helpers:
260257    [b'findmnt', b'-p'] 
261258
262259stack_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