Extended Reflection (ER)
is a library that offers functionality that greatly extends the standard reflection library, and also lifts the unmanaged CLR profiling API into the managed world.
Our Presentations and Screencasts
contain an overview of how the managed profiling API
works and how you can use it.
Extended Reflection consists of two assemblies:
- The managed assembly has the following namespaces:
- Metadata -- metadata model that can faithfully represent all entities that exist at runtime
- DataAccess -- fast and type-safe accessors to "live" program data
- Interpretation -- interpreter of all MSIL instructions, and symbolic representation of runtime values and entire states by terms
- Reasoning -- interface for symbolic reasoning over MSIL instructions
- Monitoring -- the managed counterpart of the ClrMonitor that receives callbacks from the instrumented code
- Utilities -- a set of general utility classes (collections, for debugging, logging, etc)
- The unmanaged CLR profiler called "ClrMonitor"; it instruments MSIL instructions, i.e. redirecting calls and inserting callbacks
Extended Reflection comes with a set of Code Substitutions
to better handle calls to native code.