You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
the plan is to add a series of extensions that implement a framework for creating large tools composed of modules.
one key component is "drmgr", the DynamoRIO Multi-Instrumentation Manager Extension: a mediator for combining and coordinating multiple instrumentation passes
current design:
The \p drmgr DynamoRIO Extension provides a mediator for combining and
coordinating multiple instrumentation passes. It replaces certain
DynamoRIO events and API routines with its own versions that mediate among
multiple components, typically several libraries and one client. It
facilitates developing instrumentation frameworks and libraries that can be
composed and combined.
\p drmgr divides instrumentation into four separate stages:
-# Application-to-application transformations
-# Application code analysis
-# Instrumentation insertion, one instruction at a time
-# Instrumentation-to-instrumentation transformations: typically,
optimizations applied to the full set of inserted instrumentation
Each component that registers with \p drmgr can register for some or all of
the four stages. In each stage, each registered compoment's callback is
invoked. This groups the different types of changes together and allows
them to assume that no later change will invalidate their analysis or
actions. The instrumentation insertion is performed in one forward pass:
for each instruction, each registered component is invoked. This simplifies
register allocation (register allocation is provided by a separate
Extension \p drreg).
\p drmgr also coordinates sharing of the thread-local-storage field among
multiple components and provides automated support for callback-private
fields on Windows. It replaces the single #dr_get_tls_field() pointer with
two separate arrays of pointers: one for callback-shared fields, and one
for callback-private fields. When a field is requested, an integer index
is returned to the caller for use in retrieving the appropriate pointer.
From [email protected] on February 27, 2011 13:23:16
the plan is to add a series of extensions that implement a framework for creating large tools composed of modules.
one key component is "drmgr", the DynamoRIO Multi-Instrumentation Manager Extension: a mediator for combining and coordinating multiple instrumentation passes
current design:
The \p drmgr DynamoRIO Extension provides a mediator for combining and
coordinating multiple instrumentation passes. It replaces certain
DynamoRIO events and API routines with its own versions that mediate among
multiple components, typically several libraries and one client. It
facilitates developing instrumentation frameworks and libraries that can be
composed and combined.
\p drmgr divides instrumentation into four separate stages:
-# Application-to-application transformations
-# Application code analysis
-# Instrumentation insertion, one instruction at a time
-# Instrumentation-to-instrumentation transformations: typically,
optimizations applied to the full set of inserted instrumentation
Each component that registers with \p drmgr can register for some or all of
the four stages. In each stage, each registered compoment's callback is
invoked. This groups the different types of changes together and allows
them to assume that no later change will invalidate their analysis or
actions. The instrumentation insertion is performed in one forward pass:
for each instruction, each registered component is invoked. This simplifies
register allocation (register allocation is provided by a separate
Extension \p drreg).
\p drmgr also coordinates sharing of the thread-local-storage field among
multiple components and provides automated support for callback-private
fields on Windows. It replaces the single #dr_get_tls_field() pointer with
two separate arrays of pointers: one for callback-shared fields, and one
for callback-private fields. When a field is requested, an integer index
is returned to the caller for use in retrieving the appropriate pointer.
Original issue: http://code.google.com/p/dynamorio/issues/detail?id=402
The text was updated successfully, but these errors were encountered: