Two of the the most widely used tool dynamic binary instrumentation tools are PIN and DynamoRIO.
Several software solutions exists to help the developers and researchers to commit this task of inspecting a program runtime behaviour, being some of the prominent the following ones: Dynamic instrumentation can be used to generate measures of functions properties such as execution time, call counts, registers status or call graphs. The term dynamic instrumentation refers to the act of monitoring the execution of a program in order to extract debug information, to measure code performance or to detect errors.