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