File: support_matrix.rst

package info (click to toggle)
drgn 0.0.32-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,096 kB
  • sloc: ansic: 50,186; python: 46,462; awk: 423; makefile: 339; sh: 114
file content (95 lines) | stat: -rw-r--r-- 2,342 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Support Matrix
==============

Architectures
-------------

Some features in drgn require architecture-specific support. The current status
of this support is:

.. _architecture support matrix:

.. list-table::
    :header-rows: 1

    * - Architecture
      - Linux Kernel Modules [1]_
      - Stack Traces [2]_
      - Virtual Address Translation [3]_
    * - x86-64
      - ✓
      - ✓
      - ✓
    * - AArch64
      - ✓
      - ✓
      - ✓
    * - s390x
      - ✓
      - ✓
      - ✓
    * - ppc64
      - ✓
      - ✓
      - ✓
    * - i386
      - ✓
      -
      -
    * - Arm
      - ✓
      - ✓
      - ✓
    * - RISC-V
      - ✓
      -
      -

.. rubric:: Key

.. [1] Support for loading debugging symbols for Linux kernel modules.
.. [2] Support for capturing stack traces (:meth:`drgn.Program.stack_trace()`, :meth:`drgn.Thread.stack_trace()`).
.. [3] Support for translating virtual addresses, which is required for reading from vmalloc/vmap and module memory in Linux kernel vmcores and for various helpers in :mod:`drgn.helpers.linux.mm`.

The listed architectures are recognized in :class:`drgn.Architecture`. Other
architectures are represented by :attr:`drgn.Architecture.UNKNOWN`. Features
not mentioned above should work on any architecture, listed or not.

Cross-Debugging
^^^^^^^^^^^^^^^

drgn can debug architectures different from the host. For example, you can
debug an AArch64 (kernel or userspace) core dump from an x86-64 machine.

Linux Kernel Versions
---------------------

drgn officially supports the current mainline, stable, and longterm kernel
releases from `kernel.org <https://www.kernel.org/>`_. (There may be some delay
before a new mainline version is fully supported.) End-of-life versions are
supported until it becomes too difficult to do so. The kernel versions
currently fully supported are:

.. Keep this in sync with vmtest/config.py.

- 6.0-6.16
- 5.10-5.19
- 5.4
- 4.19
- 4.14
- 4.9

Other versions are not tested. They'll probably mostly work, but support is
best-effort.

Kernel Configuration
^^^^^^^^^^^^^^^^^^^^

drgn supports debugging kernels with various configurations:

- SMP and !SMP.
- Preemptible and non-preemptible.
- SLUB, SLAB, and SLOB allocators.

drgn requires a kernel configured with ``CONFIG_PROC_KCORE=y`` for live kernel
debugging.