Hi all,
Two commits:
Commit 1: Various DataflowAPI, DyninstAPI, PatchAPI, and runtime fixes.
+Stack analysis:
Minor changes to our definitions of transfer functions to produce more
consistent results when calculating stack heights.
+Dynamic target expressions:
This _expression_ works again on Windows and Linux.
+Springboard generation:
Fixes a null pointer bug that occurs when a trap is used instead of a jump
to reach relocated code.
+Windows traps:
Using traps for instrumentation is now enabled on Windows builds.
+Error propagation:
Errors applying instrumentation in PatchAPI now propagate to the
DyninstAPI layer.
+Runtime variables:
Restores a missing runtime variable.
Commit 2: Error propagation and trusted code in defensive mode.
+Error checking and propagation:
Defensive mode parses all modules at start-up and instruments most
functions. This commit checks for errors and propagates them to the
upper layer. If any instrumentation fails, an error message is printed
and the process is aborted.
+Trusted code:
Defensive mode now uses a whitelist to mark certain system libraries as
safe. These are not parsed or instrumented at start-up. A new mechanism
exists for switching safe modules to defensive at runtime.
Best,
Allison