{"id":18554260,"url":"https://github.com/oracle/dtrace-utils","last_synced_at":"2025-04-04T13:08:47.904Z","repository":{"id":55595412,"uuid":"124185447","full_name":"oracle/dtrace-utils","owner":"oracle","description":"DTrace-utils contains the DTrace port to Linux","archived":false,"fork":false,"pushed_at":"2025-03-21T15:20:44.000Z","size":8732,"stargazers_count":162,"open_issues_count":37,"forks_count":19,"subscribers_count":20,"default_branch":"dev","last_synced_at":"2025-03-28T12:04:38.973Z","etag":null,"topics":["dtrace","kernel","linux","linux-kernel","tracing"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oracle.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-07T05:45:16.000Z","updated_at":"2025-03-03T20:25:05.000Z","dependencies_parsed_at":"2023-01-29T01:31:27.529Z","dependency_job_id":"bb95de1f-c2db-4f6a-890c-12b4f57b5925","html_url":"https://github.com/oracle/dtrace-utils","commit_stats":{"total_commits":2368,"total_committers":15,"mean_commits":"157.86666666666667","dds":0.5308277027027026,"last_synced_commit":"d731892e50fa8a1ac50ca674fd9a6972babaacfb"},"previous_names":[],"tags_count":77,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fdtrace-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fdtrace-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fdtrace-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fdtrace-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oracle","download_url":"https://codeload.github.com/oracle/dtrace-utils/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247179648,"owners_count":20897078,"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":["dtrace","kernel","linux","linux-kernel","tracing"],"created_at":"2024-11-06T21:20:44.622Z","updated_at":"2025-04-04T13:08:47.880Z","avatar_url":"https://github.com/oracle.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Linux DTrace\n\nThis is the official Linux port of the DTrace tracing tool.\n\nThe source is posted here on github.com in the hope that it increases the\nvisibility for our work and to make it even easier for people to access the\nsource.  We also use this repository to work with developers in the Linux\ncommunity.\n\nThe main development branch is [devel](https://github.com/oracle/dtrace-utils/tree/devel).\n\nWe provide prebuilt x86_64 and aarch64 DTrace userspace packages for Oracle\nLinux 9 (UEK7 kernel), Oracle Linux 8 (UEK7 or UEK6 kernel), and Oracle Linux 7\n(UEK6 kernel).  These packages are based on the Oracle Linux specific release\nbranch [2.0-branch](https://github.com/oracle/dtrace-utils/tree/2.0-branch).\n\nThe latest packages can be obtained from the following\n[Oracle Linux yum server](https://yum.oracle.com) repositories: \n- Oracle Linux 9 (x86_64) UEK Release 7: https://yum.oracle.com/repo/OracleLinux/OL9/UEKR7/x86_64/\n- Oracle Linux 9 (aarch64) BaseOS Latest: https://yum.oracle.com/repo/OracleLinux/OL9/baseos/latest/aarch64/\n- Oracle Linux 8 (x86_64) UEK Release 7: https://yum.oracle.com/repo/OracleLinux/OL8/UEKR7/x86_64/\n- Oracle Linux 8 (aarch64) UEK Release 7: https://yum.oracle.com/repo/OracleLinux/OL8/UEKR7/aarch64/\n- Oracle Linux 8 (x86_64) UEK Release 6: https://yum.oracle.com/repo/OracleLinux/OL8/UEKR6/x86_64/\n- Oracle Linux 8 (aarch64) BaseOS Latest: https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/aarch64/\n- Oracle Linux 7 (x86_64) UEK Release 6: https://yum.oracle.com/repo/OracleLinux/OL7/UEKR6/x86_64/\n- Oracle Linux 7 (aarch64) UEK Release 6: https://yum.oracle.com/repo/OracleLinux/OL7/UEKR6/aarch64/\n\nSource code for the UEK kernel is available on github in the\n[linux-uek repo](https://github.com/oracle/linux-uek).\n\n## Table of Contents\n\n* [1. License](#1-license)\n* [2. How to Build DTrace](#2-how-to-build-dtrace)\n  * [2.1. Prerequisites](#21-prerequisites)\n    * [2.1.1. Verify that binutils is recent enough...](#211-verify-that-binutils-is-recent-enough)\n    * [2.1.2. ... or install a recent-enough binutils](#212-or-install-a-recent-enough-binutils)\n    * [2.1.3. Install other necessary packages](#213-install-other-necessary-packages)\n  * [2.2. Build DTrace](#22-build-dtrace)\n* [3. Testing](#3-testing)\n* [4. How to Run DTrace](#4-how-to-run-dtrace)\n* [5. Questions](#5-questions)\n* [6. Pull Requests and Support](#6-pull-requests-and-support)\n* [7. Building Previous Releases of DTrace](#7-building-previous-releases-of-dtrace)\n\n## 1. License\n\nDTrace is licensed under the UPL 1.0 (Universal Permissive License).\nA copy is included in this repository as the LICENSE file.\n\n## 2. How to Build DTrace\n\nThe build instructions focus on building DTrace for the upstream Linux kernel.\nWe will use the 5.14.9 release, but the instructions apply to most recent Linux\nkernel versions.\n\n### 2.1. Prerequisites\n\nPlease read this section carefully before moving over to the build\ndocumentation to ensure your environment is properly configured.\n\n#### 2.1.1. Verify that binutils is recent enough...\n\nDTrace uses a type introspection system called CTF.  This is supported by\nupstream GCC and GNU Binutils.  Make sure you have binutils 2.36 or later\ninstalled.\n\nIf your distro provides libctf.so in a binutils development package, you need\nto install that too.\n\n#### 2.1.2. or install a recent-enough binutils\n\nIf your distro provides binutils 2.36 or later, you should install it.  If not,\nyou can build your own local copy (which can be configured with a --prefix\nspecific to itself to avoid disturbing the distro version).\n\n#### 2.1.3. Install other necessary packages\n\nA few other packages are required, either for building or at runtime.  They\nshould be part of most Linux distributions today and can be installed via the\npackage manager of your distro.  The table below gives package names for Debian\nand Oracle Linux.\n\nFor building:\n\n| Prerequisite       | Debian                      | Oracle Linux              |\n|:-------------------|:----------------------------|:--------------------------|\n| glibc headers      | libc6-dev                   | glibc-headers             |\n| glibc (static)     | (in libc6-dev)              | glibc-static              |\n| glibc (32-bit dev) | libc6-dev-i386              | glibc-devel.i686          |\n| bison              | bison                       | bison                     |\n| flex               | flex                        | flex                      |\n| BPF gcc            | gcc-bpf                     | gcc-bpf-unknown-none      |\n| BPF binutils       | binutils-bpf                | binutils-bpf-unknown-none |\n| libpcap dev        | libpcap-dev                 | libpcap-devel             |\n| wireshark          | wireshark                   | wireshark                 |\n| valgrind           | valgrind                    | valgrind-devel            |\n| fuse3 or fuse      | libfuse3-dev or libfuse-dev | fuse3-devel or fuse-devel |\n| kernel headers     | linux-headers-\u003ckver\u003e-\u003carch\u003e | kernel-uek-devel-\u003ckver\u003e   |\n|                    | linux-headers-\u003ckver\u003e-common |                           |\n\nAt runtime:\n\n| Prerequisite       | Debian                 | Oracle Linux              |\n|:-------------------|:-----------------------|:--------------------------|\n| wireshark          | wireshark              | wireshark                 |\n| fuse3 or fuse      | libfuse3-3 or libfuse2 | fuse3-devel or fuse-devel |\n\n### 2.2. Build DTrace\n\nThe simplest way of building DTrace is done by issuing the following commands\nfrom the DTrace source tree:\n\n```\nmake\nsudo make install\n```\n\nSome distributions install the BPF gcc and binutils under different names.  You\ncan specify the executables to use using the **BPFC** and **BPFLD** variables.\nE.g. on Debian you could use:\n\n```\nmake BPFC=bpf-gcc BPFLD=bpf-ld\nsudo make install\n```\n\nSee `./configure --help`, `make help`, and the top-level GNUmakefile for a\nfull list of options (installing in different places, building translators for\nkernels, etc.)\n\nSome of the options (e.g., those specifying paths) may need to be specified\nwhen installing as well as when building.  To avoid this, you can use the\nconfigure script: it bakes variable settings into the makefile so that they\npersist across multiple invocations, including `make install`.\n\n## 3. Testing\n\nA testsuite is provided in the source tree.  It is run using **make** in\nconjunction with one of the following targets:\n\n|          target           | description                                                           |\n|:--------------------------|:----------------------------------------------------------------------|\n| `check-verbose`           | Tests binaries from build directory. Prints result of every tests.    |\n| `check-installed-verbose` | Tests binaries installed in the system. Prints result of every tests. |\n\nExample:\n```\nsudo make check-verbose\n```\n\nLogs from test runs are stored in `test/log/\u003crun_number\u003e/`.\nThe most recent logs are also available by via the `test/log/current/` symbolic link.\n\nThe testsuite itself has more dependencies that need to be installed.\nThe full list is available in the\n[dtrace.spec](https://github.com/oracle/dtrace-utils/blob/devel/dtrace.spec)\nfile.\n\n## 4. How to run DTrace\n\nThe `dtrace` binary is installed in /usr/**sbin**/dtrace.\nCurrently, you can only run dtrace with root privileges.\nBe careful not to confuse the utility with **SystemTap's dtrace** script,\nwhich is installed in /usr/**bin**/dtrace.\n\n## 5. Questions\n\nFor questions, please ask on the [dtrace mailing list](https://lore.kernel.org/dtrace/).\nOlder discussions are archived [here](https://oss.oracle.com/pipermail/dtrace-devel/).\n \nWe have a #linux-dtrace IRC channel on irc.libera.chat, you can\nask questions there as well.\n\n## 6. Pull Requests and Support\n\nWe currently do not accept pull requests via GitHub, please contact us\nvia the mailing list or IRC channel listed above.\n\nThe source code for DTrace is published here without support. Compiled binaries are provided as part of Oracle Linux, which is [free to download](http://www.oracle.com/technetwork/server-storage/linux/downloads/index.html), distribute and use.\nSupport for DTrace is included in Oracle Linux support subscriptions. Individual packages and updates are available on the [Oracle Linux yum server](https://yum.oracle.com). \n\n## 7. Building Previous Releases of DTrace\n\nRefer to [these instructions](./README.pre-1.13.2.md) to build DTrace versions\nprior to 2.0.0-1.13.2.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle%2Fdtrace-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foracle%2Fdtrace-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle%2Fdtrace-utils/lists"}