Branch: refs/heads/master Home: https://github.com/dyninst/dyninst Commit: 87af4a184b225bd6746992f1521454518ebb372e https://github.com/dyninst/dyninst/commit/87af4a184b225bd6746992f1521454518ebb372e Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019)
Changed paths: M dyninstAPI/src/Relocation/Springboard.C Log Message: ----------- Fix the problem where trap springboards are not written to the mutatee. Commit: 123774233f79a9ac917c15f045acc7201117ba07 https://github.com/dyninst/dyninst/commit/123774233f79a9ac917c15f045acc7201117ba07 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019) Changed paths: M dyninstAPI/src/Relocation/CFG/RelocBlock.C M symtabAPI/src/emitElf.C Log Message: ----------- Fix springboard traps for PIC code Commit: 9e06ffb3ed18a408839def2ab2d24bb56817ac7a https://github.com/dyninst/dyninst/commit/9e06ffb3ed18a408839def2ab2d24bb56817ac7a Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019) Changed paths: M symtabAPI/src/emitElf.C Log Message: ----------- Fix warnings on adjusting trap springboards Commit: 16f076fb28794876c0fa0086b0d948ddc275f1f1 https://github.com/dyninst/dyninst/commit/16f076fb28794876c0fa0086b0d948ddc275f1f1 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019) Changed paths: M parseAPI/src/Function.C M parseAPI/src/Parser.C M parseAPI/src/Parser.h Log Message: ----------- 1. If ParseAPI identifies a jump as a tail call, but later find that this jump is the only incoming edge of the targXXX function, we should not treat this jump as a tail call. In theory, it is reasonable either way. However, treating such jump as a tail call can cause troubles for function entry instrumentation. If the targXXX function may jump back to the original function, and thus reach the tail jump. This becomes a recursive tail call. However, Dyninst relocation seems to have problem adjusting the tail jump to include entry instrumentation. 2. If the determination of a tail call is changed, we should re-compute function boundaries, including ret blocks, exit blocks, call edges Commit: a1229cb9a98007338dee8f3d39c6e7bcda9b6b70 https://github.com/dyninst/dyninst/commit/a1229cb9a98007338dee8f3d39c6e7bcda9b6b70 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019) Changed paths: M dyninstAPI/src/addressSpace.C M symtabAPI/src/emitElf.C Log Message: ----------- Fix finding the trap mapping header in .dyninstInst DT_DYNINST entry of the .dynamic section points the memory offset of the trap mapping header. Should use this information to locate trap mapping table when adjusting trap mapping entries for PIC code Commit: fb488fd49b82efeb6896c5068668ca8fd3630f3e https://github.com/dyninst/dyninst/commit/fb488fd49b82efeb6896c5068668ca8fd3630f3e Author: Benjamin Welton <wel...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019) Changed paths: M dyninstAPI/src/Relocation/Springboard.C Log Message: ----------- Correctness fixes for springboard generators This patch deals with issues where incorrect springboards could be generated. Specifically addresses three issues: 1. Springboards trampling function data (addresses github issue #551) 2. Required springboards being spilling over block bounds onto other required springboards. Prior a if two required springboards were located near each other, there was a chance that one of the springboards could be partially overwritten resulting in broken behavior. 3. Unsafe reusage of a codegen object where if a trap was needed, both a branch and a trap would be written causing bad behavior. Commit: 024018d1202700e73422c184216ce99b418956d6 https://github.com/dyninst/dyninst/commit/024018d1202700e73422c184216ce99b418956d6 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019) Changed paths: M parseAPI/src/Function.C Log Message: ----------- Fix compilation error introduced during applying patches Commit: 78cb21106399fa9b336e964231f4036a2ec30ba7 https://github.com/dyninst/dyninst/commit/78cb21106399fa9b336e964231f4036a2ec30ba7 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019) Changed paths: M parseAPI/h/CFG.h M parseAPI/src/Block.C M parseAPI/src/Function.C Log Message: ----------- The _func_cnt member variable in class ParseAPI::Block should be atomic<int>, rather than just int. A block can be shared by multiple functions. So, when multiple functions add/remove blocks at the same time, there will be race conditions. Commit: 2294e3596800f1ef65ec41ebedf2f9ca5b094dc7 https://github.com/dyninst/dyninst/commit/2294e3596800f1ef65ec41ebedf2f9ca5b094dc7 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-12 (Fri, 12 Apr 2019) Changed paths: M dyninstAPI/src/mapped_module.C Log Message: ----------- Delete unnecessary asserts Commit: 0070ce35ddbad51ca888c9081d3fce6a3afb1ae2 https://github.com/dyninst/dyninst/commit/0070ce35ddbad51ca888c9081d3fce6a3afb1ae2 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-14 (Sun, 14 Apr 2019) Changed paths: M dyninstAPI/src/Relocation/Springboard.C Log Message: ----------- In dynamic instrumentation, springboards are installed immediately after users insert a snippet. The user can continue to insert more snippets to the same function, which will trigger Dyninst to perform the additional relocation. So, we need to overwrite existing springboard for newly added instrumentations. In other words, we need to overwrite existing springboards if the existing ones were installed in previous relocations. Commit: 57b8030b30c9e6b5ecc5fa0a705316a9a683e38b https://github.com/dyninst/dyninst/commit/57b8030b30c9e6b5ecc5fa0a705316a9a683e38b Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-18 (Thu, 18 Apr 2019) Changed paths: M dyninstAPI/src/Relocation/CFG/RelocBlock.C M dyninstAPI/src/Relocation/CodeMover.C M dyninstAPI/src/Relocation/Springboard.C M dyninstAPI/src/Relocation/Springboard.h M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C M dyninstAPI/src/Relocation/Transformers/Movement-analysis.h M dyninstAPI/src/Relocation/Transformers/Transformer.h M parseAPI/src/IA_aarch64.C M parseAPI/src/IA_power.C M parseAPI/src/IA_x86.C M parseAPI/src/IndirectAnalyzer.C M parseAPI/src/Parser.C Log Message: ----------- 1. Replace springboards prioriy "OffLimits" and "Required" with "FuncEntry" and "IndirBlockEntry". Only "FuncEntry" springboards are required because control flow enter instrumentation through function calls (we relocate the whole function even if only a part of the function is instrumented). "IndirBlockEntry" springboards are important for re-directing control flow from jump tables back to instrumentation. But, it is not as important as "FuncEntry". 2. Jumps to code in another secion should be treated as tail calls. Commit: c6144ad78965c02708e67a8d65dabb5ba9c607b6 https://github.com/dyninst/dyninst/commit/c6144ad78965c02708e67a8d65dabb5ba9c607b6 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-23 (Tue, 23 Apr 2019) Changed paths: M dataflowAPI/src/slicing.C Log Message: ----------- For jump table analysis, control flow edges can be created in different orders, which lead to non-deterministic slicing and non-determinisitc jump table analysis. Therefore, we need to sort source edges in slicing based on the edge's source block address and edge type to ensure deterministic slicing. Commit: 3c33938ce088dd87316c6e128a6cb010f7e77bf1 https://github.com/dyninst/dyninst/commit/3c33938ce088dd87316c6e128a6cb010f7e77bf1 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-23 (Tue, 23 Apr 2019) Changed paths: M dyninstAPI/CMakeLists.txt A dyninstAPI/src/Relocation/Widgets/PCWidget-aarch64.C A dyninstAPI/src/Relocation/Widgets/PCWidget-ppc.C A dyninstAPI/src/Relocation/Widgets/PCWidget-x86.C M dyninstAPI/src/Relocation/Widgets/PCWidget.C Log Message: ----------- Move architecture dependent code in PCWidget.C to three separate architecture specific source files. Commit: bbe1d2a26fa5337c6385434b1d2d630fc4704d45 https://github.com/dyninst/dyninst/commit/bbe1d2a26fa5337c6385434b1d2d630fc4704d45 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-04-23 (Tue, 23 Apr 2019) Changed paths: M dyninstAPI/src/Relocation/Widgets/PCWidget-aarch64.C Log Message: ----------- Fix PCWdiget implementation on ARMv8 Commit: ccb8b7236aff9c757b7cc53daa22969a69813666 https://github.com/dyninst/dyninst/commit/ccb8b7236aff9c757b7cc53daa22969a69813666 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-05-07 (Tue, 07 May 2019) Changed paths: M proccontrol/src/linux.C Log Message: ----------- In ProccontrolAPI, adding reading & writing mutatee's memory with procfs. We fall back to use ptrace if procfs read & write fail. This change is for fixing icache coherence issue for ARM dynamic instrumentaiton. ARM architecture does not guarantee icache-dcache coherence. And writes through ptrace does not seem to invalidate icache contents and caused SIGILLs Commit: dad60404e5675e0830e2045cf6c5e192a411bc23 https://github.com/dyninst/dyninst/commit/dad60404e5675e0830e2045cf6c5e192a411bc23 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-05-07 (Tue, 07 May 2019) Changed paths: M symtabAPI/src/Symbol.C Log Message: ----------- Only demangle names starting with "_Z" according to the Itanium C++ ABI Commit: 4441edc24eb7f5c2a521cea1ec7ea6fa56bc1552 https://github.com/dyninst/dyninst/commit/4441edc24eb7f5c2a521cea1ec7ea6fa56bc1552 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-05-11 (Sat, 11 May 2019) Changed paths: M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C Log Message: ----------- Disable incomplete implementation for RA compensation for stack unwinding Commit: 9486c91ae71643196b1f832b8b3cdc5d52c9ee91 https://github.com/dyninst/dyninst/commit/9486c91ae71643196b1f832b8b3cdc5d52c9ee91 Author: Xiaozhu Meng <xm...@cs.wisc.edu> Date: 2019-05-11 (Sat, 11 May 2019) Changed paths: M dataflowAPI/src/slicing.C M dyninstAPI/CMakeLists.txt M dyninstAPI/src/Relocation/CFG/RelocBlock.C M dyninstAPI/src/Relocation/CodeMover.C M dyninstAPI/src/Relocation/Springboard.C M dyninstAPI/src/Relocation/Springboard.h M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C M dyninstAPI/src/Relocation/Transformers/Movement-analysis.h M dyninstAPI/src/Relocation/Transformers/Transformer.h A dyninstAPI/src/Relocation/Widgets/PCWidget-aarch64.C A dyninstAPI/src/Relocation/Widgets/PCWidget-ppc.C A dyninstAPI/src/Relocation/Widgets/PCWidget-x86.C M dyninstAPI/src/Relocation/Widgets/PCWidget.C M dyninstAPI/src/addressSpace.C M dyninstAPI/src/mapped_module.C M parseAPI/h/CFG.h M parseAPI/src/Block.C M parseAPI/src/Function.C M parseAPI/src/IA_aarch64.C M parseAPI/src/IA_power.C M parseAPI/src/IA_x86.C M parseAPI/src/IndirectAnalyzer.C M parseAPI/src/Parser.C M parseAPI/src/Parser.h M proccontrol/src/linux.C M symtabAPI/src/Symbol.C M symtabAPI/src/emitElf.C Log Message: ----------- Merge pull request #592 from dyninst/pp_springboard More fixes for parallel parsing, spring boards, and ARM Compare: https://github.com/dyninst/dyninst/compare/225db759af14...9486c91ae716 _______________________________________________ Dyninst-api mailing list Dyninst-api@cs.wisc.edu https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api