drgn
====
|pypi badge| |ci badge| |docs badge| |black badge|
.. |pypi badge| image:: https://img.shields.io/pypi/v/drgn
:target: https://pypi.org/project/drgn/
:alt: PyPI
.. |ci badge| image:: https://github.com/osandov/drgn/workflows/CI/badge.svg
:target: https://github.com/osandov/drgn/actions
:alt: CI Status
.. |docs badge| image:: https://readthedocs.org/projects/drgn/badge/?version=latest
:target: https://drgn.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. |black badge| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
.. start-introduction
drgn (pronounced "dragon") is a debugger with an emphasis on programmability.
drgn exposes the types and variables in a program for easy, expressive
scripting in Python. For example, you can debug the Linux kernel:
.. code-block:: pycon
>>> from drgn.helpers.linux import list_for_each_entry
>>> for mod in list_for_each_entry('struct module',
... prog['modules'].address_of_(),
... 'list'):
... if mod.refcnt.counter > 10:
... print(mod.name)
...
(char [56])"snd"
(char [56])"evdev"
(char [56])"i915"
Although other debuggers like `GDB <https://www.gnu.org/software/gdb/>`_ have
scripting support, drgn aims to make scripting as natural as possible so that
debugging feels like coding. This makes it well-suited for introspecting the
complex, inter-connected state in large programs.
Additionally, drgn is designed as a library that can be used to build debugging
and introspection tools; see the official `tools
<https://github.com/osandov/drgn/tree/main/tools>`_.
drgn was developed at `Meta <https://opensource.fb.com/>`_ for debugging the
Linux kernel (as an alternative to the `crash
<https://crash-utility.github.io/>`_ utility), but it can also debug userspace
programs written in C. C++ support is in progress.
.. end-introduction
Documentation can be found at `drgn.readthedocs.io
<https://drgn.readthedocs.io>`_.
.. start-installation
Installation
------------
Package Manager
^^^^^^^^^^^^^^^
drgn can be installed using the package manager on some Linux distributions.
.. image:: https://repology.org/badge/vertical-allrepos/drgn.svg
:target: https://repology.org/project/drgn/versions
:alt: Packaging Status
* Fedora >= 32
.. code-block:: console
$ sudo dnf install drgn
* RHEL/CentOS >= 8
`Enable EPEL <https://docs.fedoraproject.org/en-US/epel/#_quickstart>`_. Then:
.. code-block:: console
$ sudo dnf install drgn
* Oracle Linux >= 8
Enable the ``ol8_addons`` or ``ol9_addons`` repository and install drgn:
.. code-block:: console
$ sudo dnf config-manager --enable ol8_addons # OR: ol9_addons
$ sudo dnf install drgn
Drgn is also available for Python versions in application streams. For
example, use ``dnf install python3.12-drgn`` to install drgn for Python 3.12.
See the documentation for drgn in `Oracle Linux 9
<https://docs.oracle.com/en/operating-systems/oracle-linux/9/drgn/how_to_install_drgn.html>`_
and `Oracle Linux 8
<https://docs.oracle.com/en/operating-systems/oracle-linux/8/drgn/how_to_install_drgn.html>`_
for more information.
* Arch Linux
.. code-block:: console
$ sudo pacman -S drgn
* Debian >= 12 (Bookworm)
.. code-block:: console
$ sudo apt install python3-drgn
* Gentoo
.. code-block:: console
$ sudo emerge dev-debug/drgn
* openSUSE
.. code-block:: console
$ sudo zypper install python3-drgn
* Ubuntu
Enable the `michel-slm/kernel-utils PPA <https://launchpad.net/~michel-slm/+archive/ubuntu/kernel-utils>`_.
Then:
.. code-block:: console
$ sudo apt install python3-drgn
pip
^^^
If your Linux distribution doesn't package the latest release of drgn, you can
install it with `pip <https://pip.pypa.io/>`_.
First, `install pip
<https://packaging.python.org/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers>`_.
Then, run:
.. code-block:: console
$ sudo pip3 install drgn
This will install a binary wheel by default. If you get a build error, then pip
wasn't able to use the binary wheel. Install the dependencies listed `below
<#from-source>`_ and try again.
Note that RHEL/CentOS 6, Debian Stretch, Ubuntu Trusty, and Ubuntu Xenial (and
older) ship Python versions which are too old. Python 3.6 or newer must be
installed.
From Source
^^^^^^^^^^^
To get the development version of drgn, you will need to build it from source.
First, install dependencies:
* Fedora
.. code-block:: console
$ sudo dnf install autoconf automake check-devel elfutils-devel gcc git libkdumpfile-devel libtool make pkgconf python3 python3-devel python3-pip python3-setuptools
* RHEL/CentOS/Oracle Linux
.. code-block:: console
$ sudo dnf install autoconf automake check-devel elfutils-devel gcc git libtool make pkgconf python3 python3-devel python3-pip python3-setuptools
Optionally, install ``libkdumpfile-devel`` from EPEL on RHEL/CentOS >= 8 or
install `libkdumpfile <https://github.com/ptesarik/libkdumpfile>`_ from
source if you want support for the makedumpfile format. For Oracle Linux >= 7,
``libkdumpfile-devel`` can be installed directly from the corresponding addons
repository (e.g. ``ol9_addons``).
Replace ``dnf`` with ``yum`` for RHEL/CentOS/Oracle Linux < 8.
When building on RHEL/CentOS/Oracle Linux < 8, you may need to use a newer
version of GCC, for example, using the ``devtoolset-12`` developer toolset.
Check your distribution's documentation for information on installing and
using these newer toolchains.
* Debian/Ubuntu
.. code-block:: console
$ 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
Optionally, install libkdumpfile from source if you want support for the
makedumpfile format.
* Arch Linux
.. code-block:: console
$ sudo pacman -S --needed autoconf automake check gcc git libelf libkdumpfile libtool make pkgconf python python-pip python-setuptools
* Gentoo
.. code-block:: console
$ 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
* openSUSE
.. code-block:: console
$ 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
Then, run:
.. code-block:: console
$ git clone https://github.com/osandov/drgn.git
$ cd drgn
$ python3 setup.py build
$ sudo python3 setup.py install
.. end-installation
See the `installation documentation
<https://drgn.readthedocs.io/en/latest/installation.html>`_ for more options.
Quick Start
-----------
.. start-quick-start
drgn debugs the running kernel by default; run ``sudo drgn``. To debug a
running program, run ``sudo drgn -p $PID``. To debug a core dump (either a
kernel vmcore or a userspace core dump), run ``drgn -c $PATH``. Make sure to
`install debugging symbols
<https://drgn.readthedocs.io/en/latest/getting_debugging_symbols.html>`_ for
whatever you are debugging.
Then, you can access variables in the program with ``prog['name']`` and access
structure members with ``.``:
.. code-block:: pycon
$ sudo drgn
>>> prog['init_task'].comm
(char [16])"swapper/0"
You can use various predefined helpers:
.. code-block:: pycon
>>> len(list(bpf_prog_for_each()))
11
>>> task = find_task(115)
>>> cmdline(task)
[b'findmnt', b'-p']
You can get stack traces with ``stack_trace()`` and access parameters or local
variables with ``trace['name']``:
.. code-block:: pycon
>>> trace = stack_trace(task)
>>> trace[5]
#5 at 0xffffffff8a5a32d0 (do_sys_poll+0x400/0x578) in do_poll at ./fs/select.c:961:8 (inlined)
>>> poll_list = trace[5]['list']
>>> file = fget(task, poll_list.entries[0].fd)
>>> d_path(file.f_path.address_of_())
b'/proc/115/mountinfo'
.. end-quick-start
See the `user guide <https://drgn.readthedocs.io/en/latest/user_guide.html>`_
for more details and features.
.. start-for-index
Getting Help
------------
* The `GitHub issue tracker <https://github.com/osandov/drgn/issues>`_ is the
preferred method to report issues.
* There is also a `Linux Kernel Debuggers Matrix room
<https://matrix.to/#/#linux-debuggers:matrix.org>`_.
License
-------
Copyright (c) Meta Platforms, Inc. and affiliates.
drgn is licensed under the `LGPLv2.1
<https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html>`_ or later.
.. end-for-index
Raw data
{
"_id": null,
"home_page": "https://github.com/osandov/drgn",
"name": "drgn",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Omar Sandoval",
"author_email": "osandov@osandov.com",
"download_url": "https://files.pythonhosted.org/packages/7d/b5/d601dc9bfc4393a03e9b3bd8fd79fb04fdc7bb2d88dcc095cbadc779aec6/drgn-0.0.30.tar.gz",
"platform": null,
"description": "drgn\n====\n\n|pypi badge| |ci badge| |docs badge| |black badge|\n\n.. |pypi badge| image:: https://img.shields.io/pypi/v/drgn\n :target: https://pypi.org/project/drgn/\n :alt: PyPI\n\n.. |ci badge| image:: https://github.com/osandov/drgn/workflows/CI/badge.svg\n :target: https://github.com/osandov/drgn/actions\n :alt: CI Status\n\n.. |docs badge| image:: https://readthedocs.org/projects/drgn/badge/?version=latest\n :target: https://drgn.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. |black badge| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n\n.. start-introduction\n\ndrgn (pronounced \"dragon\") is a debugger with an emphasis on programmability.\ndrgn exposes the types and variables in a program for easy, expressive\nscripting in Python. For example, you can debug the Linux kernel:\n\n.. code-block:: pycon\n\n >>> from drgn.helpers.linux import list_for_each_entry\n >>> for mod in list_for_each_entry('struct module',\n ... prog['modules'].address_of_(),\n ... 'list'):\n ... if mod.refcnt.counter > 10:\n ... print(mod.name)\n ...\n (char [56])\"snd\"\n (char [56])\"evdev\"\n (char [56])\"i915\"\n\nAlthough other debuggers like `GDB <https://www.gnu.org/software/gdb/>`_ have\nscripting support, drgn aims to make scripting as natural as possible so that\ndebugging feels like coding. This makes it well-suited for introspecting the\ncomplex, inter-connected state in large programs.\n\nAdditionally, drgn is designed as a library that can be used to build debugging\nand introspection tools; see the official `tools\n<https://github.com/osandov/drgn/tree/main/tools>`_.\n\ndrgn was developed at `Meta <https://opensource.fb.com/>`_ for debugging the\nLinux kernel (as an alternative to the `crash\n<https://crash-utility.github.io/>`_ utility), but it can also debug userspace\nprograms written in C. C++ support is in progress.\n\n.. end-introduction\n\nDocumentation can be found at `drgn.readthedocs.io\n<https://drgn.readthedocs.io>`_.\n\n.. start-installation\n\nInstallation\n------------\n\nPackage Manager\n^^^^^^^^^^^^^^^\n\ndrgn can be installed using the package manager on some Linux distributions.\n\n.. image:: https://repology.org/badge/vertical-allrepos/drgn.svg\n :target: https://repology.org/project/drgn/versions\n :alt: Packaging Status\n\n* Fedora >= 32\n\n .. code-block:: console\n\n $ sudo dnf install drgn\n\n* RHEL/CentOS >= 8\n\n `Enable EPEL <https://docs.fedoraproject.org/en-US/epel/#_quickstart>`_. Then:\n\n .. code-block:: console\n\n $ sudo dnf install drgn\n\n* Oracle Linux >= 8\n\n Enable the ``ol8_addons`` or ``ol9_addons`` repository and install drgn:\n\n .. code-block:: console\n\n $ sudo dnf config-manager --enable ol8_addons # OR: ol9_addons\n $ sudo dnf install drgn\n\n Drgn is also available for Python versions in application streams. For\n example, use ``dnf install python3.12-drgn`` to install drgn for Python 3.12.\n See the documentation for drgn in `Oracle Linux 9\n <https://docs.oracle.com/en/operating-systems/oracle-linux/9/drgn/how_to_install_drgn.html>`_\n and `Oracle Linux 8\n <https://docs.oracle.com/en/operating-systems/oracle-linux/8/drgn/how_to_install_drgn.html>`_\n for more information.\n\n* Arch Linux\n\n .. code-block:: console\n\n $ sudo pacman -S drgn\n\n* Debian >= 12 (Bookworm)\n\n .. code-block:: console\n\n $ sudo apt install python3-drgn\n\n* Gentoo\n\n .. code-block:: console\n\n $ sudo emerge dev-debug/drgn\n\n* openSUSE\n\n .. code-block:: console\n\n $ sudo zypper install python3-drgn\n\n* Ubuntu\n\n Enable the `michel-slm/kernel-utils PPA <https://launchpad.net/~michel-slm/+archive/ubuntu/kernel-utils>`_.\n Then:\n\n .. code-block:: console\n\n $ sudo apt install python3-drgn\n\npip\n^^^\n\nIf your Linux distribution doesn't package the latest release of drgn, you can\ninstall it with `pip <https://pip.pypa.io/>`_.\n\nFirst, `install pip\n<https://packaging.python.org/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers>`_.\nThen, run:\n\n.. code-block:: console\n\n $ sudo pip3 install drgn\n\nThis will install a binary wheel by default. If you get a build error, then pip\nwasn't able to use the binary wheel. Install the dependencies listed `below\n<#from-source>`_ and try again.\n\nNote that RHEL/CentOS 6, Debian Stretch, Ubuntu Trusty, and Ubuntu Xenial (and\nolder) ship Python versions which are too old. Python 3.6 or newer must be\ninstalled.\n\nFrom Source\n^^^^^^^^^^^\n\nTo get the development version of drgn, you will need to build it from source.\nFirst, install dependencies:\n\n* Fedora\n\n .. code-block:: console\n\n $ sudo dnf install autoconf automake check-devel elfutils-devel gcc git libkdumpfile-devel libtool make pkgconf python3 python3-devel python3-pip python3-setuptools\n\n* RHEL/CentOS/Oracle Linux\n\n .. code-block:: console\n\n $ sudo dnf install autoconf automake check-devel elfutils-devel gcc git libtool make pkgconf python3 python3-devel python3-pip python3-setuptools\n\n Optionally, install ``libkdumpfile-devel`` from EPEL on RHEL/CentOS >= 8 or\n install `libkdumpfile <https://github.com/ptesarik/libkdumpfile>`_ from\n source if you want support for the makedumpfile format. For Oracle Linux >= 7,\n ``libkdumpfile-devel`` can be installed directly from the corresponding addons\n repository (e.g. ``ol9_addons``).\n\n Replace ``dnf`` with ``yum`` for RHEL/CentOS/Oracle Linux < 8.\n\n When building on RHEL/CentOS/Oracle Linux < 8, you may need to use a newer\n version of GCC, for example, using the ``devtoolset-12`` developer toolset.\n Check your distribution's documentation for information on installing and\n using these newer toolchains.\n\n* Debian/Ubuntu\n\n .. code-block:: console\n\n $ 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\n\n Optionally, install libkdumpfile from source if you want support for the\n makedumpfile format.\n\n* Arch Linux\n\n .. code-block:: console\n\n $ sudo pacman -S --needed autoconf automake check gcc git libelf libkdumpfile libtool make pkgconf python python-pip python-setuptools\n\n* Gentoo\n\n .. code-block:: console\n\n $ 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\n\n* openSUSE\n\n .. code-block:: console\n\n $ 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\n\nThen, run:\n\n.. code-block:: console\n\n $ git clone https://github.com/osandov/drgn.git\n $ cd drgn\n $ python3 setup.py build\n $ sudo python3 setup.py install\n\n.. end-installation\n\nSee the `installation documentation\n<https://drgn.readthedocs.io/en/latest/installation.html>`_ for more options.\n\nQuick Start\n-----------\n\n.. start-quick-start\n\ndrgn debugs the running kernel by default; run ``sudo drgn``. To debug a\nrunning program, run ``sudo drgn -p $PID``. To debug a core dump (either a\nkernel vmcore or a userspace core dump), run ``drgn -c $PATH``. Make sure to\n`install debugging symbols\n<https://drgn.readthedocs.io/en/latest/getting_debugging_symbols.html>`_ for\nwhatever you are debugging.\n\nThen, you can access variables in the program with ``prog['name']`` and access\nstructure members with ``.``:\n\n.. code-block:: pycon\n\n $ sudo drgn\n >>> prog['init_task'].comm\n (char [16])\"swapper/0\"\n\nYou can use various predefined helpers:\n\n.. code-block:: pycon\n\n >>> len(list(bpf_prog_for_each()))\n 11\n >>> task = find_task(115)\n >>> cmdline(task)\n [b'findmnt', b'-p']\n\nYou can get stack traces with ``stack_trace()`` and access parameters or local\nvariables with ``trace['name']``:\n\n.. code-block:: pycon\n\n >>> trace = stack_trace(task)\n >>> trace[5]\n #5 at 0xffffffff8a5a32d0 (do_sys_poll+0x400/0x578) in do_poll at ./fs/select.c:961:8 (inlined)\n >>> poll_list = trace[5]['list']\n >>> file = fget(task, poll_list.entries[0].fd)\n >>> d_path(file.f_path.address_of_())\n b'/proc/115/mountinfo'\n\n.. end-quick-start\n\nSee the `user guide <https://drgn.readthedocs.io/en/latest/user_guide.html>`_\nfor more details and features.\n\n.. start-for-index\n\nGetting Help\n------------\n\n* The `GitHub issue tracker <https://github.com/osandov/drgn/issues>`_ is the\n preferred method to report issues.\n* There is also a `Linux Kernel Debuggers Matrix room\n <https://matrix.to/#/#linux-debuggers:matrix.org>`_.\n\nLicense\n-------\n\nCopyright (c) Meta Platforms, Inc. and affiliates.\n\ndrgn is licensed under the `LGPLv2.1\n<https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html>`_ or later.\n\n.. end-for-index\n",
"bugtrack_url": null,
"license": "LGPL-2.1-or-later",
"summary": "Programmable debugger",
"version": "0.0.30",
"project_urls": {
"Bug Tracker": "https://github.com/osandov/drgn/issues",
"Documentation": "https://drgn.readthedocs.io",
"Homepage": "https://github.com/osandov/drgn"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6482c5c54dae52c24ff440d20c6948cdc47581af7d857475f84d06b5024a53b5",
"md5": "09c6b8f34ff7f0db35fd793d36de2c15",
"sha256": "ba087a0f9cc7bbb9fc31165234d4be69fe2b780141b724fa35675564107900f1"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "09c6b8f34ff7f0db35fd793d36de2c15",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 4848766,
"upload_time": "2024-12-18T23:09:07",
"upload_time_iso_8601": "2024-12-18T23:09:07.888739Z",
"url": "https://files.pythonhosted.org/packages/64/82/c5c54dae52c24ff440d20c6948cdc47581af7d857475f84d06b5024a53b5/drgn-0.0.30-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a7b8ac6eb1c87ab0948844271f6f5ff8e4c29d9471b209458e9d4de68f0617ac",
"md5": "80a5b59ad9681c0f2c9033de897753ea",
"sha256": "69edb2a3518780083fe09f3e000cf4b17be7ea27baf16d66a041bf310b72e5d2"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "80a5b59ad9681c0f2c9033de897753ea",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 4860030,
"upload_time": "2024-12-18T23:09:11",
"upload_time_iso_8601": "2024-12-18T23:09:11.992116Z",
"url": "https://files.pythonhosted.org/packages/a7/b8/ac6eb1c87ab0948844271f6f5ff8e4c29d9471b209458e9d4de68f0617ac/drgn-0.0.30-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3bfeb272017a85ad8cdcfff42845a189ad92f897d328591bec6f707ce36498b6",
"md5": "bbe1be8563ea0d585f3897d6b70643b1",
"sha256": "8d06a3eecb99ec4dbb582e959ccbfd51533f4fb912448228975e99c7cce3053a"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "bbe1be8563ea0d585f3897d6b70643b1",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 4868900,
"upload_time": "2024-12-18T23:09:16",
"upload_time_iso_8601": "2024-12-18T23:09:16.289382Z",
"url": "https://files.pythonhosted.org/packages/3b/fe/b272017a85ad8cdcfff42845a189ad92f897d328591bec6f707ce36498b6/drgn-0.0.30-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5d2e02863ebcc69e7f8163d29d20bec06b61f80b3744c85a327f06750756a698",
"md5": "2b2f20954382e6f7500b150360144d0a",
"sha256": "55f00faa60b4ec421c5975cea428eeafcb5b8bb93fd05b51dc42f75d1a9cbd6e"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "2b2f20954382e6f7500b150360144d0a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.6",
"size": 4869376,
"upload_time": "2024-12-18T23:09:19",
"upload_time_iso_8601": "2024-12-18T23:09:19.635072Z",
"url": "https://files.pythonhosted.org/packages/5d/2e/02863ebcc69e7f8163d29d20bec06b61f80b3744c85a327f06750756a698/drgn-0.0.30-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d8bc79aa41094e545b59eac5f8b56ebe9292b342496691151b74be9cb98528da",
"md5": "4001e3e00c09b1d09015565a6e1f9f91",
"sha256": "0faf67aa4fb01ed01327f6785a02a9c8d0d456405fedaaa5046d51ccb1ea68bd"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "4001e3e00c09b1d09015565a6e1f9f91",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.6",
"size": 4946172,
"upload_time": "2024-12-18T23:09:23",
"upload_time_iso_8601": "2024-12-18T23:09:23.884939Z",
"url": "https://files.pythonhosted.org/packages/d8/bc/79aa41094e545b59eac5f8b56ebe9292b342496691151b74be9cb98528da/drgn-0.0.30-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ec039ce5a443a493e4c23ad9cfd9ebedd20fd4485c36b6e26d73d01efb55cb68",
"md5": "0e7c377ef3fd00749d7c3163ed19c4ef",
"sha256": "b751d6adc17256d24f06e9f2c1bf8f0c68bff4c4a249baa146191181ebea048d"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0e7c377ef3fd00749d7c3163ed19c4ef",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">=3.6",
"size": 4812439,
"upload_time": "2024-12-18T23:09:26",
"upload_time_iso_8601": "2024-12-18T23:09:26.888580Z",
"url": "https://files.pythonhosted.org/packages/ec/03/9ce5a443a493e4c23ad9cfd9ebedd20fd4485c36b6e26d73d01efb55cb68/drgn-0.0.30-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b8b530745c27a546bb02229487d4cf48d29b8d61b52137a7b1f097bec2969a24",
"md5": "8375777e0f65fa3422c75b678dd961bc",
"sha256": "92315d3233eb44151768da573174b91546173ea9eb18d1dc4b49b72b548322db"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "8375777e0f65fa3422c75b678dd961bc",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.6",
"size": 4818773,
"upload_time": "2024-12-18T23:09:30",
"upload_time_iso_8601": "2024-12-18T23:09:30.771678Z",
"url": "https://files.pythonhosted.org/packages/b8/b5/30745c27a546bb02229487d4cf48d29b8d61b52137a7b1f097bec2969a24/drgn-0.0.30-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "37c82290cf9b13448f1c72ab59513ec3bed542c7191fc1f9b342e7c231d1218c",
"md5": "d5ea1516d75d3e5bcbac7da30ad4d3cf",
"sha256": "581edd55361ec9d5a2d432d08b260a40ef099ce6dea03a57aa9a46995e1406d2"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "d5ea1516d75d3e5bcbac7da30ad4d3cf",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 4842294,
"upload_time": "2024-12-18T23:09:34",
"upload_time_iso_8601": "2024-12-18T23:09:34.690962Z",
"url": "https://files.pythonhosted.org/packages/37/c8/2290cf9b13448f1c72ab59513ec3bed542c7191fc1f9b342e7c231d1218c/drgn-0.0.30-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bb539adf7c5905b57e3593d2ed42f063f9d306bdb287a3b45888cfb4cf47a3b2",
"md5": "9b0dcbd19f4cde295fa0775ffa922d4d",
"sha256": "57e8f9dd925d623d8010c99c88faaa1eec387e5c9a308f12c1fd707900866de1"
},
"downloads": -1,
"filename": "drgn-0.0.30-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9b0dcbd19f4cde295fa0775ffa922d4d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 4847030,
"upload_time": "2024-12-18T23:09:36",
"upload_time_iso_8601": "2024-12-18T23:09:36.971194Z",
"url": "https://files.pythonhosted.org/packages/bb/53/9adf7c5905b57e3593d2ed42f063f9d306bdb287a3b45888cfb4cf47a3b2/drgn-0.0.30-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7db5d601dc9bfc4393a03e9b3bd8fd79fb04fdc7bb2d88dcc095cbadc779aec6",
"md5": "800de3a17c1fe522190ffe0f3c597db5",
"sha256": "3594ca8095c846f7acd9d723a2304f0171fd740250804633b791b15223b44eed"
},
"downloads": -1,
"filename": "drgn-0.0.30.tar.gz",
"has_sig": false,
"md5_digest": "800de3a17c1fe522190ffe0f3c597db5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 1268753,
"upload_time": "2024-12-18T23:09:40",
"upload_time_iso_8601": "2024-12-18T23:09:40.817428Z",
"url": "https://files.pythonhosted.org/packages/7d/b5/d601dc9bfc4393a03e9b3bd8fd79fb04fdc7bb2d88dcc095cbadc779aec6/drgn-0.0.30.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-18 23:09:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "osandov",
"github_project": "drgn",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "drgn"
}