Dr. Memory
|
DynamoRIO Inside Dr. Memory
DynamoRIO is included inside the Dr. Memory source tree as a git submodule. We support both building that embedded DR along with pointing to an already-built separate DR export tree.
Submodule Rollback
Be careful with submodules when pulling upstream changes. If a submodule was modified upstream and only a git pull
is run without a subsequent git submodule update
, that upstream change will be reverted upon the next git push
. Please use the pullall
alias to avoid accidentally clobbering submodule changes.
We do have a pre-commit hook in place that will warn you if you try to roll back the dynamorio submodule while checking in at least one other file:
Updating the DynamoRIO Version
Run git checkout <hash>
to update DynamoRIO to that hash:
If Dr. Memory's sources are being changed to require this new version of DR, apply the Dr. Memory changes such that they will be included in the same commit that updates the submodule version. Also add to the commit message something like "Relies on DR <hash>. Updates DR to <hash>.".
If Dr. Memory won't build, or shouldn't be built, with any older version of DR, also update the set of the "DynamoRIO_VERSION_REQUIRED" variable in trunk/CMakeLists.txt (use the patchlevel printed by cmake .
).
Now run the Dr. Memory test suite with an embedded DR, not with an already-built DR to ensure it's happy with the updated DR.
In your commit log message state to which version you're updating DR, and why (typically to pull in a certain bug fix or new feature).