{"id":19584712,"url":"https://github.com/oracle-samples/drgn-tools","last_synced_at":"2025-04-27T11:32:14.333Z","repository":{"id":200550970,"uuid":"703426991","full_name":"oracle-samples/drgn-tools","owner":"oracle-samples","description":"drgn helpers specific to Oracle UEK, along with custom CLI and reporting tool corelens","archived":false,"fork":false,"pushed_at":"2024-10-30T16:32:43.000Z","size":1759,"stargazers_count":20,"open_issues_count":11,"forks_count":18,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-10-30T17:29:34.599Z","etag":null,"topics":["debugging","drgn","kernel","linux"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"upl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oracle-samples.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-11T08:18:02.000Z","updated_at":"2024-10-30T16:23:29.000Z","dependencies_parsed_at":"2024-02-27T00:26:50.007Z","dependency_job_id":"cc2997a4-fa91-4a18-935b-0ed5a3439e72","html_url":"https://github.com/oracle-samples/drgn-tools","commit_stats":null,"previous_names":["oracle-samples/drgn-tools"],"tags_count":6,"template":false,"template_full_name":"oracle/template-repo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-samples%2Fdrgn-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-samples%2Fdrgn-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-samples%2Fdrgn-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-samples%2Fdrgn-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oracle-samples","download_url":"https://codeload.github.com/oracle-samples/drgn-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224069554,"owners_count":17250454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debugging","drgn","kernel","linux"],"created_at":"2024-11-11T07:49:26.020Z","updated_at":"2024-11-11T07:49:26.779Z","avatar_url":"https://github.com/oracle-samples.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# drgn-tools\n\ndrgn-tools is a library of helpers for use with [drgn][drgn]. It contains\nhelpers with a slightly reduced scope than what drgn itself can contain.\n\nThe main target for these helpers is the Oracle UEK kernel. Helpers may contain\ncode that assumes a UEK configuration and UEK architectures. This makes a lower\nbar for acceptance than drgn, where helpers should be as configuration and\narchitecture agnostic as possible. In general, helpers should be contributed to\ndrgn itself, unless there is an Oracle UEK-specific reason to keep them here.\n\nIn addition to the helper functions, drgn-tools contains some helper utilities\nthat we find useful:\n\n1. The `DRGN` script which can automatically download, extract, and load\n   debuginfo for UEK kernels.\n2. The `corelens` tool, which contains a library of modules that can extract\n   information from a live kernel or vmcore, and write it to a sosreport-style\n   directory for later analysis.\n\nPlease note, each drgn-tools version is only supported with a corresponding\nversion of Drgn.\n\nSee the [documentation][doc] for more information on how to use these tools and\nhow to contribute to them.\n\n## Getting Started\n\nRequires Python 3.6 or later, and an Linux system (preferably Oracle Linux 8 or\nlater). For this guide, we'll assume you have a core dump (vmcore).\n\n1. Install Drgn, if you haven't already: `pip install drgn`. Alternatively, `yum\n   install drgn`, or use your system's package manager, if appropriate.\n2. Clone the repository: `git clone\n   https://github.com/oracle-samples/drgn-tools`\n\nThat's it! See below for ways to use drgn-tools.\n\n## Documentation\n\nYou can find documentation for the helpers, as well as contributing guide and\nguide to using our tools, [here](https://oracle-samples.github.io/drgn-tools/).\n\n## Examples\n\nOne of the benefits of using drgn-tools, in addition to the added UEK-specific\nhelpers, is the ability to fetch debuginfo directly from the Oracle debuginfo\nYum server. To enable this, you should put the following contents in\n`~/.config/drgn_tools.ini`:\n\n``` ini\n[debuginfo]\nfetchers = OracleLinuxYumFetcher\n```\n\nWith that, you can use the drgn-tools CLI with:\n\n``` sh\npython -m drgn_tools.cli VMCORE\n```\n\nTo run it against the running kernel, use:\n\n``` sh\npython -m drgn_tools.cli /proc/kcore\n```\n\nUse the drgn-tools Corelens system (which outputs a range of information from\nseveral diagnostic systems):\n\n``` sh\npython -m drgn_tools.corelens VMCORE\n```\n\n## Help\n\nIf you're having trouble using drgn-tools or its helpers, please create a Github\nissue, and we'll try to help as best we can.\n\nFor customers having difficulties diagnosing issues with Oracle Linux or UEK,\nplease use My Oracle Support to create a request to engage our support team.\n\n## Contributing\n\nDrgn-tools welcomes contributions. However, when it comes to helpers, we believe\nin an upstream-first policy. Helper functions ought to be contributed to\n[drgn][drgn] wherever possible. In the case that code can't be contributed to\nDrgn because it is specific to UEK configurations or architectures, we will\ngladly accept it. Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for details on\ncontributing.\n\n## Security\n\nPlease consult the [security guide](./SECURITY.md) for our responsible security\nvulnerability disclosure process.\n\n## License\n\nCopyright (c) 2023 Oracle and/or its affiliates.\n\nReleased under the Universal Permissive License v1.0 as shown at\n\u003chttps://oss.oracle.com/licenses/upl/\u003e.\n\n[drgn]: https://drgn.readthedocs.io\n[doc]: https://oracle-samples.github.io/drgn-tools/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle-samples%2Fdrgn-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foracle-samples%2Fdrgn-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle-samples%2Fdrgn-tools/lists"}