INTRODUCTION parseThat is an application that provides a rigorous and robust test of DyninstAPI on arbitrary binaries. Geared mainly for debugging purposes, parseThat generates copious output for each dyninstAPI feature it uses. These output logs can be used to quickly locate the source of parsing or instrumentation bugs, in the rare instance when they occur. CONFIGURATION Autoconf scripts are used to gather information about the target platform before building. Run the script "configure" to initiate the process: ./configure Building outside of the source tree is possible as well: mkdir ${OBJ_DIR}; cd ${OBJ_DIR} /path/to/parseThat/configure By default, the parseThat binary will be placed in the build directory. Use the --prefix flag to install it somewhere else. For example, to install parseThat in /usr/local/bin: ./configure --prefix=/usr/local/bin There are a few variables which allow you to control how parseThat is built. PLATFORM The configuration scripts will attempt to guess your target platform, but it's sometime helpful to specify your build platform manually. See the documentation for DyninstAPI in core/dyninstAPI/README for valid values of this variable. DYNINST_ROOT The various headers and libraries for DyninstAPI may not be installed in a standard location. Use this environment variable to manually specify where you placed a source or binary distribution of DyninstAPI. BUILDING & INSTALLING Once configured, you can build parseThat by simply invoking GNU make in the base directory. To build parseThat for multiple platforms simultaneously with the same source tree, you must create a seperate object directory for each platform. See instructions under CONFIGURATION for details on building outside the source tree. Once successfully built, invoking GNU make with the "install" target will copy the binary to its final destination. RUNNING Documentation on running parseThat is encoded within the binary itself. It can be viewed by simply running parseThat with the --help flag.