Checking in revision b08fb7261096 release binaries.
R=sebmarchand@chromium.org
TBR=sebmarchand@chromium.org
BUG=
Review URL: https://codereview.appspot.com/94480044
git-svn-id: http://sawbuck.googlecode.com/svn/trunk/syzygy/binaries@2154 15e8cca8-e42c-11de-a347-f34a4f72eb7d
diff --git a/Benchmark_Chrome-0.1-py2.6.egg b/Benchmark_Chrome-0.1-py2.6.egg
index bf21053..fa90428 100644
--- a/Benchmark_Chrome-0.1-py2.6.egg
+++ b/Benchmark_Chrome-0.1-py2.6.egg
Binary files differ
diff --git a/ETW-0.6.5.0-py2.6.egg b/ETW-0.6.5.0-py2.6.egg
index 65e7975..60b7065 100644
--- a/ETW-0.6.5.0-py2.6.egg
+++ b/ETW-0.6.5.0-py2.6.egg
Binary files differ
diff --git a/ETW_Db-0.1-py2.6.egg b/ETW_Db-0.1-py2.6.egg
index 8c6c906..bf7642a 100644
--- a/ETW_Db-0.1-py2.6.egg
+++ b/ETW_Db-0.1-py2.6.egg
Binary files differ
diff --git a/exe/README.TXT b/exe/README.TXT
index a3ea1e0..4da64a6 100644
--- a/exe/README.TXT
+++ b/exe/README.TXT
@@ -1,207 +1,207 @@
-Syzygy Post-Link Transformation Toolchain
-=========================================
-
-Date: 2014/05/08
-Version: 0.7.15.0 (2146)
-
-The Syzygy project consists of a suite of tools for the instrumentation of
-PE binaries. The various instrumentation modes allow for computing code
-coverage results, profiling source code, applying profile-guided basic block
-optimizations as well as block (function) level profile-guided reordering.
-
-
-CONTENTS
-========
-
-Executables
------------
-
-agent_logger.exe
- A RPC logging service. For use with ASAN instrumented binaries, accepting
- error logs across process boundaries. Works for sandboxed processes, like
- Chrome.
-
-call_trace_control.exe
- Controls ETW kernel logging services. This tool is primarily intended for
- use with the Chrome benchmarking and profiling scripts, packaged elsewhere.
-
-call_trace_service.exe
- Controls the data collection backend used by the various instrumentation
- agents. This must be running while executing an instrumented binary,
- otherwise no data will be collected.
-
-decompose.exe
- Utility for decomposing PE files (.exe and .dll) to the intermediate
- representation format used by the Syzygy toolchain.
-
-decompose_image_to_text.exe
- Utility that decomposes a PE file to a textual representation.
-
-dump_trace.exe
- Explores trace files produced by call_trace_service by dumping them to a
- textual format.
-
-genfilter.exe
- Used to produce filters that can in turn be fed to the instrumenter. This
- allows for partial instrumentation of a binary. See FILTER-FORMAT.TXT for
- details.
-
-grinder.exe
- Processes trace files and produces some summary output. The output of this
- tool is typically used as input to other tools for visualizing profile data
- or performing optimizations.
-
-instrument.exe
- Instruments a PE file with a given agent.
-
-pdbfind.exe
- A utility for locating the PDB file that is matched to a given PE file.
-
-pehacker.exe
- A utility for applying various transforms to a PE file via a text
- configuration file.
-
-relink.exe
- Relinks a PE file after applying specified transformations. Combined with
- output from grinder and reorder this is used to apply optimizations to a
- binary.
-
-reorder.exe
- Uses aggregated profile data from grinder to produce an order file
- describing an optimized binary layout. The output is intended to be used
- with relink to actually apply the optimization.
-
-run_in_snapshot.exe:
-run_in_snapshot_x64.exe:
-run_in_snapshot_xp.exe:
- Simulate cold-start performance by running the provided executable on a
- cold virtual volume.
-
-sampler.exe:
- A sampling profiler. This monitors running processes and attaches a
- sampling profiler to modules of interest, dumping output to trace files.
-
-simulate.exe
- Simulates OS page faults by playing back a call_trace_client data file.
-
-swapimport.exe
- Makes a named import library the first one in the import directory by
- swapping it if necessary. This operates on a raw PE file, with no need for
- symbols.
-
-wsdump.exe
- Dumps the working set associated with a running process. The output is in
- JSON format.
-
-zap_timestamp.exe
- A utility for normalizing a PE/PDB file pair after a build. Used as a post-
- build step this should allow for production of identical binary outputs
- given identical inputs. Typical outputs vary in the timestamp, and various
- unique IDs and checksums.
-
-Instrumentation Agents
-----------------------
-
-The release package includes the following instrumentation agent libraries,
-and their debugging symbols (PDB files).
-
-basic_block_entry_client.dll
- The agent associated with the basic-block entry instrumentation mode. This
- collects frequency of execution counts for each basic block in a binary.
- Intended for use with grinder/reorder/relink for applying basic block
- optimizations (hot cold separation and basic-block reordering).
-
-call_trace_client.dll
- The agent associated with the call-trace instrumentation mode. This
- collections function entry events. Intended for use with
- grinder/reorder/relink for applying block (function) level reordering.
-
-coverage_client.dll
- The agent associated with the code coverage instrumentation mode. This
- collects basic block visited information. Intended for use with grinder
- to produce LCOV coverage reports. These can then be used with a variety
- of code coverage tools.
-
-profile_client.dll
- The agent associated with the hierarchichal profiler. Collects function entry
- and exit events per thread. Intended for use with grinder to produce
- cachegrind files. These can then be used with a KCacheGrind or QCacheGrind
- for visualization.
-
-syzyasan_rtl.dll
- The runtime library associated with the address-sanitizer instrumentation
- mode. Useful for finding heap use errors (use after free, double free, etc).
-
-Experimental Executables
-------------------------
-
-code_tally.exe
- Processes a PDB file and produces a cachegrind file documenting bytes of
- code/occurrence code per line of source file, as well as code volume per
- compiland. These can be visualized with KCacheGrind or QCacheGrind.
-
-compare.exe
- Reconciles two different but related binaries (two versions of the same
- program, for example), mapping unchanged blocks and then attempting to
- determine which blocks in one binary are related/have evolved from which
- blocks in the other binary.
-
-pdb_dumper.exe
- Dumps a textual representation of the contents of a PDB file.
-
-timed_decomposer.exe
- Repeatedly runs decomposition and reports timing information.
-
-Experimental Python Scripts
----------------------------
-
-convert_code_tally.py
- Convert a JSON file generated by code_tally.exe into a format that can be
- uploaded to the Chromium size viewer app engine instance.
-
-Include files
--------------
-
-nested_heap.h
- Header file for the SyzyASAN nested heap API.
-
-Lib files
----------
-
-syzyasan_rtl.dll.lib
- Library file for importing the SyzyASAN runtime.
-
-USAGE
------
-
-Invoke the individual tools with a '--help' argument for further details.
-
-In general the toolchain is applied in the following manner:
-
- (1) instrument a binary with instrument.exe
- (2) start call_trace_service.exe
- (3) run the instrumented binary through a suite of tests
- (4) stop call_trace_service.exe
- (5) aggregate the call-trace data with grinder.exe
-
-If you are collecting code coverage or profile info the output of grinder.exe
-is ready for visualization. If you are optimizing a binary the workflow is
-a little different:
-
- (1) - (4) as above
- (5) analyze the trace files and produce an order file with reorder.exe
- (6) apply the calculated optimization using relink.exe
-
-
-REDISTRIBUTION
---------------
-
-Any of the binaries included in this distribution may be freely redistributed
-as long as LICENSE.TXT is included in the distribution.
-
-
-LICENSING
----------
-
-The Syzygy project is licensed under the Apache Software license. You should
-have received a copy of this in LICENSE.TXT.
+Syzygy Post-Link Transformation Toolchain
+=========================================
+
+Date: 2014/05/13
+Version: 0.7.16.0 (2153)
+
+The Syzygy project consists of a suite of tools for the instrumentation of
+PE binaries. The various instrumentation modes allow for computing code
+coverage results, profiling source code, applying profile-guided basic block
+optimizations as well as block (function) level profile-guided reordering.
+
+
+CONTENTS
+========
+
+Executables
+-----------
+
+agent_logger.exe
+ A RPC logging service. For use with ASAN instrumented binaries, accepting
+ error logs across process boundaries. Works for sandboxed processes, like
+ Chrome.
+
+call_trace_control.exe
+ Controls ETW kernel logging services. This tool is primarily intended for
+ use with the Chrome benchmarking and profiling scripts, packaged elsewhere.
+
+call_trace_service.exe
+ Controls the data collection backend used by the various instrumentation
+ agents. This must be running while executing an instrumented binary,
+ otherwise no data will be collected.
+
+decompose.exe
+ Utility for decomposing PE files (.exe and .dll) to the intermediate
+ representation format used by the Syzygy toolchain.
+
+decompose_image_to_text.exe
+ Utility that decomposes a PE file to a textual representation.
+
+dump_trace.exe
+ Explores trace files produced by call_trace_service by dumping them to a
+ textual format.
+
+genfilter.exe
+ Used to produce filters that can in turn be fed to the instrumenter. This
+ allows for partial instrumentation of a binary. See FILTER-FORMAT.TXT for
+ details.
+
+grinder.exe
+ Processes trace files and produces some summary output. The output of this
+ tool is typically used as input to other tools for visualizing profile data
+ or performing optimizations.
+
+instrument.exe
+ Instruments a PE file with a given agent.
+
+pdbfind.exe
+ A utility for locating the PDB file that is matched to a given PE file.
+
+pehacker.exe
+ A utility for applying various transforms to a PE file via a text
+ configuration file.
+
+relink.exe
+ Relinks a PE file after applying specified transformations. Combined with
+ output from grinder and reorder this is used to apply optimizations to a
+ binary.
+
+reorder.exe
+ Uses aggregated profile data from grinder to produce an order file
+ describing an optimized binary layout. The output is intended to be used
+ with relink to actually apply the optimization.
+
+run_in_snapshot.exe:
+run_in_snapshot_x64.exe:
+run_in_snapshot_xp.exe:
+ Simulate cold-start performance by running the provided executable on a
+ cold virtual volume.
+
+sampler.exe:
+ A sampling profiler. This monitors running processes and attaches a
+ sampling profiler to modules of interest, dumping output to trace files.
+
+simulate.exe
+ Simulates OS page faults by playing back a call_trace_client data file.
+
+swapimport.exe
+ Makes a named import library the first one in the import directory by
+ swapping it if necessary. This operates on a raw PE file, with no need for
+ symbols.
+
+wsdump.exe
+ Dumps the working set associated with a running process. The output is in
+ JSON format.
+
+zap_timestamp.exe
+ A utility for normalizing a PE/PDB file pair after a build. Used as a post-
+ build step this should allow for production of identical binary outputs
+ given identical inputs. Typical outputs vary in the timestamp, and various
+ unique IDs and checksums.
+
+Instrumentation Agents
+----------------------
+
+The release package includes the following instrumentation agent libraries,
+and their debugging symbols (PDB files).
+
+basic_block_entry_client.dll
+ The agent associated with the basic-block entry instrumentation mode. This
+ collects frequency of execution counts for each basic block in a binary.
+ Intended for use with grinder/reorder/relink for applying basic block
+ optimizations (hot cold separation and basic-block reordering).
+
+call_trace_client.dll
+ The agent associated with the call-trace instrumentation mode. This
+ collections function entry events. Intended for use with
+ grinder/reorder/relink for applying block (function) level reordering.
+
+coverage_client.dll
+ The agent associated with the code coverage instrumentation mode. This
+ collects basic block visited information. Intended for use with grinder
+ to produce LCOV coverage reports. These can then be used with a variety
+ of code coverage tools.
+
+profile_client.dll
+ The agent associated with the hierarchichal profiler. Collects function entry
+ and exit events per thread. Intended for use with grinder to produce
+ cachegrind files. These can then be used with a KCacheGrind or QCacheGrind
+ for visualization.
+
+syzyasan_rtl.dll
+ The runtime library associated with the address-sanitizer instrumentation
+ mode. Useful for finding heap use errors (use after free, double free, etc).
+
+Experimental Executables
+------------------------
+
+code_tally.exe
+ Processes a PDB file and produces a cachegrind file documenting bytes of
+ code/occurrence code per line of source file, as well as code volume per
+ compiland. These can be visualized with KCacheGrind or QCacheGrind.
+
+compare.exe
+ Reconciles two different but related binaries (two versions of the same
+ program, for example), mapping unchanged blocks and then attempting to
+ determine which blocks in one binary are related/have evolved from which
+ blocks in the other binary.
+
+pdb_dumper.exe
+ Dumps a textual representation of the contents of a PDB file.
+
+timed_decomposer.exe
+ Repeatedly runs decomposition and reports timing information.
+
+Experimental Python Scripts
+---------------------------
+
+convert_code_tally.py
+ Convert a JSON file generated by code_tally.exe into a format that can be
+ uploaded to the Chromium size viewer app engine instance.
+
+Include files
+-------------
+
+nested_heap.h
+ Header file for the SyzyASAN nested heap API.
+
+Lib files
+---------
+
+syzyasan_rtl.dll.lib
+ Library file for importing the SyzyASAN runtime.
+
+USAGE
+-----
+
+Invoke the individual tools with a '--help' argument for further details.
+
+In general the toolchain is applied in the following manner:
+
+ (1) instrument a binary with instrument.exe
+ (2) start call_trace_service.exe
+ (3) run the instrumented binary through a suite of tests
+ (4) stop call_trace_service.exe
+ (5) aggregate the call-trace data with grinder.exe
+
+If you are collecting code coverage or profile info the output of grinder.exe
+is ready for visualization. If you are optimizing a binary the workflow is
+a little different:
+
+ (1) - (4) as above
+ (5) analyze the trace files and produce an order file with reorder.exe
+ (6) apply the calculated optimization using relink.exe
+
+
+REDISTRIBUTION
+--------------
+
+Any of the binaries included in this distribution may be freely redistributed
+as long as LICENSE.TXT is included in the distribution.
+
+
+LICENSING
+---------
+
+The Syzygy project is licensed under the Apache Software license. You should
+have received a copy of this in LICENSE.TXT.
diff --git a/exe/RELEASE-NOTES.TXT b/exe/RELEASE-NOTES.TXT
index af9019f..fd152ee 100644
--- a/exe/RELEASE-NOTES.TXT
+++ b/exe/RELEASE-NOTES.TXT
@@ -1,9 +1,14 @@
Syzygy Release Notes
====================
+Version 0.7.16.0
+
+[r2151] SyzyASan - Fixes to the heap validation code.
+[r2148] Add a script for installing Syzygy binaries directly from the archives.
+
Version 0.7.15.0
-[r2142] SyzyASAN - Addition of a heap validation code to error processing and
+[r2142] SyzyASan - Addition of a heap validation code to error processing and
reporting.
[r2138] Fix to allow VS2013 produced Syzygy agents to run with VS2013 produced
instrumented binaries.
diff --git a/exe/agent_logger.exe b/exe/agent_logger.exe
index b4d0415..6f98e9a 100755
--- a/exe/agent_logger.exe
+++ b/exe/agent_logger.exe
Binary files differ
diff --git a/exe/basic_block_entry_client.dll b/exe/basic_block_entry_client.dll
index 1da06c0..5a7d1e8 100644
--- a/exe/basic_block_entry_client.dll
+++ b/exe/basic_block_entry_client.dll
Binary files differ
diff --git a/exe/basic_block_entry_client.dll.pdb b/exe/basic_block_entry_client.dll.pdb
index 93b0077..c87a2af 100644
--- a/exe/basic_block_entry_client.dll.pdb
+++ b/exe/basic_block_entry_client.dll.pdb
Binary files differ
diff --git a/exe/call_trace_client.dll b/exe/call_trace_client.dll
index 7d9c71e..02918a2 100644
--- a/exe/call_trace_client.dll
+++ b/exe/call_trace_client.dll
Binary files differ
diff --git a/exe/call_trace_client.dll.pdb b/exe/call_trace_client.dll.pdb
index 849fcc9..c803470 100644
--- a/exe/call_trace_client.dll.pdb
+++ b/exe/call_trace_client.dll.pdb
Binary files differ
diff --git a/exe/call_trace_control.exe b/exe/call_trace_control.exe
index 3d8aabd..a8a0950 100755
--- a/exe/call_trace_control.exe
+++ b/exe/call_trace_control.exe
Binary files differ
diff --git a/exe/call_trace_service.exe b/exe/call_trace_service.exe
index 65edb27..eece697 100755
--- a/exe/call_trace_service.exe
+++ b/exe/call_trace_service.exe
Binary files differ
diff --git a/exe/coverage_client.dll b/exe/coverage_client.dll
index 6146731..09b6e26 100644
--- a/exe/coverage_client.dll
+++ b/exe/coverage_client.dll
Binary files differ
diff --git a/exe/coverage_client.dll.pdb b/exe/coverage_client.dll.pdb
index dfec327..98ea4cb 100644
--- a/exe/coverage_client.dll.pdb
+++ b/exe/coverage_client.dll.pdb
Binary files differ
diff --git a/exe/decompose.exe b/exe/decompose.exe
index b7ae505..f31e403 100755
--- a/exe/decompose.exe
+++ b/exe/decompose.exe
Binary files differ
diff --git a/exe/decompose_image_to_text.exe b/exe/decompose_image_to_text.exe
index 74cd59b..63cc3d5 100755
--- a/exe/decompose_image_to_text.exe
+++ b/exe/decompose_image_to_text.exe
Binary files differ
diff --git a/exe/dump_trace.exe b/exe/dump_trace.exe
index 377cd6c..712dba2 100755
--- a/exe/dump_trace.exe
+++ b/exe/dump_trace.exe
Binary files differ
diff --git a/exe/experimental/code_tally.exe b/exe/experimental/code_tally.exe
index ff0a290..9f713ac 100755
--- a/exe/experimental/code_tally.exe
+++ b/exe/experimental/code_tally.exe
Binary files differ
diff --git a/exe/experimental/compare.exe b/exe/experimental/compare.exe
index aee7466..0dafb45 100755
--- a/exe/experimental/compare.exe
+++ b/exe/experimental/compare.exe
Binary files differ
diff --git a/exe/experimental/pdb_dumper.exe b/exe/experimental/pdb_dumper.exe
index 1fbb05e..4ce0d90 100755
--- a/exe/experimental/pdb_dumper.exe
+++ b/exe/experimental/pdb_dumper.exe
Binary files differ
diff --git a/exe/experimental/timed_decomposer.exe b/exe/experimental/timed_decomposer.exe
index a66caa3..6ff0e44 100755
--- a/exe/experimental/timed_decomposer.exe
+++ b/exe/experimental/timed_decomposer.exe
Binary files differ
diff --git a/exe/genfilter.exe b/exe/genfilter.exe
index ed3d0d9..10bd21b 100755
--- a/exe/genfilter.exe
+++ b/exe/genfilter.exe
Binary files differ
diff --git a/exe/grinder.exe b/exe/grinder.exe
index 6c152ce..1e531d7 100755
--- a/exe/grinder.exe
+++ b/exe/grinder.exe
Binary files differ
diff --git a/exe/instrument.exe b/exe/instrument.exe
index c04417b..c5c2dff 100755
--- a/exe/instrument.exe
+++ b/exe/instrument.exe
Binary files differ
diff --git a/exe/pdbfind.exe b/exe/pdbfind.exe
index 22b18bd..238535b 100755
--- a/exe/pdbfind.exe
+++ b/exe/pdbfind.exe
Binary files differ
diff --git a/exe/pehacker.exe b/exe/pehacker.exe
index 36ae727..a31a77e 100755
--- a/exe/pehacker.exe
+++ b/exe/pehacker.exe
Binary files differ
diff --git a/exe/profile_client.dll b/exe/profile_client.dll
index 8f5ec16..62a2d3c 100644
--- a/exe/profile_client.dll
+++ b/exe/profile_client.dll
Binary files differ
diff --git a/exe/profile_client.dll.pdb b/exe/profile_client.dll.pdb
index 65d8b9d..ca54c7e 100644
--- a/exe/profile_client.dll.pdb
+++ b/exe/profile_client.dll.pdb
Binary files differ
diff --git a/exe/relink.exe b/exe/relink.exe
index a5c5104..1b800ac 100755
--- a/exe/relink.exe
+++ b/exe/relink.exe
Binary files differ
diff --git a/exe/reorder.exe b/exe/reorder.exe
index 91da527..e21d045 100755
--- a/exe/reorder.exe
+++ b/exe/reorder.exe
Binary files differ
diff --git a/exe/run_in_snapshot.exe b/exe/run_in_snapshot.exe
index 751b5af..0f44367 100755
--- a/exe/run_in_snapshot.exe
+++ b/exe/run_in_snapshot.exe
Binary files differ
diff --git a/exe/run_in_snapshot_x64.exe b/exe/run_in_snapshot_x64.exe
index a833a57..82d013a 100755
--- a/exe/run_in_snapshot_x64.exe
+++ b/exe/run_in_snapshot_x64.exe
Binary files differ
diff --git a/exe/run_in_snapshot_xp.exe b/exe/run_in_snapshot_xp.exe
index 32afbbd..ad6c1ac 100755
--- a/exe/run_in_snapshot_xp.exe
+++ b/exe/run_in_snapshot_xp.exe
Binary files differ
diff --git a/exe/sampler.exe b/exe/sampler.exe
index 81a2044..5c68c35 100755
--- a/exe/sampler.exe
+++ b/exe/sampler.exe
Binary files differ
diff --git a/exe/simulate.exe b/exe/simulate.exe
index 2ccb3c1..5fc850d 100755
--- a/exe/simulate.exe
+++ b/exe/simulate.exe
Binary files differ
diff --git a/exe/swapimport.exe b/exe/swapimport.exe
index e6b8d0a..d00aeee 100755
--- a/exe/swapimport.exe
+++ b/exe/swapimport.exe
Binary files differ
diff --git a/exe/syzyasan_rtl.dll b/exe/syzyasan_rtl.dll
index a943032..c0c4332 100644
--- a/exe/syzyasan_rtl.dll
+++ b/exe/syzyasan_rtl.dll
Binary files differ
diff --git a/exe/syzyasan_rtl.dll.pdb b/exe/syzyasan_rtl.dll.pdb
index ab7e5c5..1f5e562 100644
--- a/exe/syzyasan_rtl.dll.pdb
+++ b/exe/syzyasan_rtl.dll.pdb
Binary files differ
diff --git a/exe/wsdump.exe b/exe/wsdump.exe
index 5c322dd..6da33d8 100755
--- a/exe/wsdump.exe
+++ b/exe/wsdump.exe
Binary files differ
diff --git a/exe/zap_timestamp.exe b/exe/zap_timestamp.exe
index 5067039..9adb91d 100755
--- a/exe/zap_timestamp.exe
+++ b/exe/zap_timestamp.exe
Binary files differ
diff --git a/lib/syzyasan_rtl.dll.lib b/lib/syzyasan_rtl.dll.lib
index 3bd29a2..2c6d2ec 100644
--- a/lib/syzyasan_rtl.dll.lib
+++ b/lib/syzyasan_rtl.dll.lib
Binary files differ