DynamoRIO / DynamoRIO/dynamorio
Make bbcov's module tracker table common functionality for all clients.
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
_From [peter.goodman](https://code.google.com/u/peter.goodman/) on September 09, 2013 10:02:36_
What is the problem to solve? Why is it important? Provide some context for those unfamiliar with the details of the system. bbcov's module tracker is useful for other modules, and so can be pulled out as common functionality to share among clients. What are the possible approaches to solving the problem? 1) Put common files into a clients/common directory, and directly compile them into clients.
2) Put common files into clients/common or subdirectories thereof and compile and link clients against common static libraries.
3) Duplicate any code that is needed.
4) Specialise similar code to the various clients. Which approach is being taken and why? A mix of approaches (3) and (4) are currently taken. bbcov's requirements for module tracking do not cover the required feature set of, for example, Dr. Memory. Any interesting details or challenges of the implementation? 1) Dealing with segmented modules. Bbcov currently assumes that module code is contiguous in memory.
2) Bbcov assumes that if a module is unloaded and reloaded, then we can combine tracking of the old and new versions of the module iff the newly loaded module is in the same place as the old one. Perhaps there is a less restrictive condition (e.g. based on paths, sizes, relative entry points) that would satisfy bbcov's requirement of a speedy lookup.
_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=1264_
Contributor guide
Assessment
This issue has not been assessed yet.