Attempts to fix legacy test failures in Dyninst test suite (#549)
authorXiaozhu Meng <mxz297@gmail.com>
Thu, 7 Mar 2019 00:08:22 +0000 (18:08 -0600)
committerTim Haines <thaines.astro@gmail.com>
Thu, 7 Mar 2019 00:08:22 +0000 (18:08 -0600)
commit2a4bbf763c87a0a6168de2630cf74ba821e6472f
treeda4723e6974bf5ce5b01075d7d1f34f31e5cd6a1
parentb60f5eb067108847dda6f5d405bdfd30a8adc53d
Attempts to fix legacy test failures in Dyninst test suite (#549)

* In binary rewriting, when Dyninst needs to load a library,
    it does not check whether this library has been loaded before or not.
    Dyninst will create multiple binaryEdit objects for one library, which can cause inconsistent states between these objects.

    This fix adds a map to BPatch_binaryEdit to make sure each library is only loaded once.

* Fix pc_tls failures in dyamically linked binaries.
    The root cause is a broken library name matching code.
    Just should boost:filesystem::path to deal with file paths.

Closes #549
dyninstAPI/h/BPatch_binaryEdit.h
dyninstAPI/src/BPatch_binaryEdit.C
proccontrol/src/int_thread_db.C