Skip to content

DrCCTProf is a fine-grained call path profiling framework for binaries running on ARM and X86 architectures.

License

Notifications You must be signed in to change notification settings

jsalzbergedu/DrCCTProf

 
 

Repository files navigation

DrCCTProf

DrCCTProf is a fine-grained call path profiling framework for binaries running on ARM and X86 architectures. Please see our blog for more details.

build master Codacy Badge license

Contents

Installation

Linux

1. Install Dependencies

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.

2. Build

Use the following commands to get sources and build DrCCTProf:

$ git clone --recurse https://github.com/Xuhpclab/DrCCTProf.git
$ ./build.sh

Usage

Linux

To run DrCCTProf, one needs to issue the following command:

1. Set the global environment variable

$ export drrun=/path/to/DrCCTProf/build/bin64/drrun

2. Run client tool

  • x86_64
$ drrun -t <client tool> -- <application> [apllication args]
  • aarch64
$ drrun -unsafe_build_ldstex -t <client tool> -- <application> [apllication args]

Client tools

Internal client tools list

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

How to build your own custom tools?

See documentation for details.

Support Platforms

The following platforms passed our tests.

Linux

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

Obtaining Help

Report an error case of building

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.

Report a bug

Please use the bug report.

License

DrCCTProf is released under the MIT License.

About

DrCCTProf is a fine-grained call path profiling framework for binaries running on ARM and X86 architectures.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 77.3%
  • CMake 14.6%
  • Shell 7.3%
  • Other 0.8%