DrCCTProf is a fine-grained call path profiling framework for binaries running on ARM and X86 architectures. Please see our blog for more details.
In order to build you'll need the following packages:
- gcc (at least version 4.8)
- binutils (at least version 2.26)
- cmake (at least version 3.7)
- perl
To avoid conflicts with installed original version packages, we recommend that use Spack to manage the above packages and create a virtual environment to build and run DrCCTProf.
Use the following commands to get sources and build DrCCTProf:
$ git clone --recurse https://github.com/Xuhpclab/DrCCTProf.git
$ ./build.sh
To run DrCCTProf, one needs to issue the following command:
$ export drrun=/path/to/DrCCTProf/build/bin64/drrun
- x86_64
$ $drrun -t <client tool> -- <application> [apllication args]
- aarch64
$ $drrun -unsafe_build_ldstex -t <client tool> -- <application> [apllication args]
Name | Features | Status |
---|---|---|
drcctlib_cct_only_clean_call | A tool that collects call path on each instruction. | release |
drcctlib_instr_statistics_clean_call | A instruction counting tool that counts each instruction. | release |
drcctlib_reuse_distance_client_cache | A reuse distance measurement tool. | release |
drcctlib_cct_only | (Code cache mode)A tool that collects call path on each instruction. | beta |
drcctlib_instr_statistics | (Code cache mode) A instruction counting tool that counts each instruction. | beta |
drcctlib_reuse_distance | (Code cache mode) A reuse distance measurement tool. | beta |
See documentation for details.
The following platforms passed our tests.
CPU | Systems | Architecture |
---|---|---|
Intel(R) Xeon(R) CPU E5-2699 v3 | Ubuntu 18.04 | x86_64 |
Intel(R) Xeon(R) CPU E5-2650 v4 | Ubuntu 14.04 | x86_64 |
Intel(R) Xeon(R) CPU E7-4830 v4 | Red Hat 4.8.3 | x86_64 |
Arm Cortex A53(Raspberry pi 3 b+) | Ubuntu 18.04 | aarch64 |
Arm Cortex-A57(Jetson Nano) | Ubuntu 18.04 | aarch64 |
ThunderX2 99xx | Ubuntu 20.04 | aarch64 |
AWS Graviton1 | Ubuntu 18.04 | aarch64 |
AWS Graviton2 | Ubuntu 18.04 | aarch64 |
Please use the build error report.
DrCCTProf is built atop DynamoRIO. If you get errors in building, you can also search the DynamoRIO's issues to get help.
Please use the bug report.
DrCCTProf is released under the MIT License.