[DynInst_API:] [dyninst/dyninst] 8701b7: Handle implicit operand for call instruction to ROSE

2023-10-13 Thread Xiaozhu Meng
  Branch: refs/heads/thaines/fix_rose_implicit_ops
  Home:   https://github.com/dyninst/dyninst
  Commit: 8701b70d6728ee1f1417a9d33ef623d6acce178f
  
https://github.com/dyninst/dyninst/commit/8701b70d6728ee1f1417a9d33ef623d6acce178f
  Author: Xiaozhu Meng 
  Date:   2023-10-13 (Fri, 13 Oct 2023)

  Changed paths:
M dataflowAPI/src/RoseInsnFactory.C
M parseAPI/src/IA_IAPI.C

  Log Message:
  ---
  Handle implicit operand for call instruction to ROSE


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 773f44: Do not decode operands for INVALID opcode

2023-07-26 Thread Xiaozhu Meng
  Branch: refs/heads/thaines/no_decode_invalid_instructions
  Home:   https://github.com/dyninst/dyninst
  Commit: 773f4486a9ea92c30abc5c0082220ff60602a8dd
  
https://github.com/dyninst/dyninst/commit/773f4486a9ea92c30abc5c0082220ff60602a8dd
  Author: Xiaozhu Meng 
  Date:   2023-07-26 (Wed, 26 Jul 2023)

  Changed paths:
M instructionAPI/src/Instruction.C

  Log Message:
  ---
  Do not decode operands for INVALID opcode


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-06-01 Thread Xiaozhu Meng
  Branch: refs/heads/implicit_operand
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-05-28 Thread Xiaozhu Meng
  Branch: refs/heads/dwarf_abbrev_fix
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-05-27 Thread Xiaozhu Meng
  Branch: refs/heads/power_parsing_fixes
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-05-26 Thread Xiaozhu Meng
  Branch: refs/heads/fix_null_code_buffer
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/catch_block_fix
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-05-12 Thread Xiaozhu Meng
  Branch: refs/heads/parse_data_fix
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-04-01 Thread Xiaozhu Meng
  Branch: refs/heads/non-det-inline
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-02-15 Thread Xiaozhu Meng
  Branch: refs/heads/plt_call_lookup
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2021-01-22 Thread Xiaozhu Meng
  Branch: refs/heads/altdwarf
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] b834d9: Enable gap parsing based on the binary's architect...

2020-11-19 Thread Xiaozhu Meng
  Branch: refs/heads/gap_parsing_enable
  Home:   https://github.com/dyninst/dyninst
  Commit: b834d9d8956f174f60e58015c6a524ab3bc52cf3
  
https://github.com/dyninst/dyninst/commit/b834d9d8956f174f60e58015c6a524ab3bc52cf3
  Author: Xiaozhu Meng 
  Date:   2020-11-19 (Thu, 19 Nov 2020)

  Changed paths:
M cmake/cap_arch_def.cmake
M common/src/arch-x86.C
M common/src/arch-x86.h
M dyninstAPI/src/image.C
M parseAPI/src/IdiomModelDesc.C
M parseAPI/src/Parser-speculative.C
M parseAPI/src/ProbabilisticParser.C
M parseAPI/src/ProbabilisticParser.h
M patchAPI/test/findPoint/Makefile

  Log Message:
  ---
  Enable gap parsing based on the binary's architecture to analyze instead of
the architecture where Dyninst runs


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2020-08-03 Thread Xiaozhu Meng
  Branch: refs/tags/v10.2.0
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2020-07-31 Thread Xiaozhu Meng
  Branch: refs/tags/10.2.0
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] e16f96: Fix jump table finalization

2020-03-13 Thread Xiaozhu Meng
  Branch: refs/heads/test_reloc_fix
  Home:   https://github.com/dyninst/dyninst
  Commit: e16f961104a259a541ad1a1e4cdb7ac57a3647ba
  
https://github.com/dyninst/dyninst/commit/e16f961104a259a541ad1a1e4cdb7ac57a3647ba
  Author: Xiaozhu Meng 
  Date:   2020-03-13 (Fri, 13 Mar 2020)

  Changed paths:
M parseAPI/src/Parser.C

  Log Message:
  ---
  Fix jump table finalization


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


Re: [DynInst_API:] building dyninst with -fsanitize-address

2020-03-04 Thread Xiaozhu Meng
Hi Stan,

Most of the listed locations are creating boost::shared_ptr objects. Does 
address sanitizer work well with Boost library?

Thanks,

—Xiaozhu

> On Mar 4, 2020, at 12:58 PM, Stan Cox  wrote:
> 
> Anyone try running dyninst with the address sanitizer?  I built upstream 
> sources with -fsanitize=address  -fsanitize=leak, ran the testsuite 
> (partially, not completely), and massaged the output to give the following.
> 
> Direct leak of 40 byte(s) in 1 object(s) allocated from: 
> InstructionDecoder-aarch64.C:2175
> Direct leak of 40 byte(s) in 1 object(s) allocated from: stl_list.h:1908
> Indirect leak of 56 byte(s) in 1 object(s) allocated from: 
> InstructionDecoder-x86.C:181
> Direct leak of 88 byte(s) in 1 object(s) allocated from: 
> InstructionDecoderImpl.C:115
> Direct leak of 176 byte(s) in 2 object(s) allocated from: 
> InstructionDecoderImpl.C:103
> Direct leak of 176 byte(s) in 2 object(s) allocated from: 
> InstructionDecoderImpl.C:109
> Direct leak of 264 byte(s) in 3 object(s) allocated from: Immediate.C:94
> Direct leak of 352 byte(s) in 4 object(s) allocated from: Immediate.C:115
> Indirect leak of 480 byte(s) in 10 object(s) allocated from: Instruction.C:634
> Indirect leak of 480 byte(s) in 20 object(s) allocated from: 
> InstructionDecoderImpl.C:83
> Indirect leak of 480 byte(s) in 20 object(s) allocated from: 
> shared_count.hpp:144
> Indirect leak of 480 byte(s) in 20 object(s) allocated from: 
> shared_ptr.hpp:285
> Indirect leak of 480 byte(s) in 20 object(s) allocated from: 
> shared_ptr.hpp:379
> Direct leak of 640 byte(s) in 16 object(s) allocated from: Immediate.C:44
> Direct leak of 1008 byte(s) in 18 object(s) allocated from: invoke.h:60
> Direct leak of 1008 byte(s) in 18 object(s) allocated from: invoke.h:95
> Direct leak of 1008 byte(s) in 18 object(s) allocated from: Operation.C:60
> Indirect leak of 1120 byte(s) in 28 object(s) allocated from: 
> Instruction.C:623
> Indirect leak of 1120 byte(s) in 28 object(s) allocated from: stl_list.h:1208
> Direct leak of 1672 byte(s) in 19 object(s) allocated from: 
> InstructionDecoderImpl.C:97
> Indirect leak of 1792 byte(s) in 56 object(s) allocated from: 
> shared_count.hpp:181
> Indirect leak of 1792 byte(s) in 56 object(s) allocated from: 
> shared_ptr.hpp:388
> Indirect leak of 1792 byte(s) in 56 object(s) allocated from: 
> singleton_object_pool.h:75
> Indirect leak of 1920 byte(s) in 40 object(s) allocated from: 
> alloc_traits.h:444
> Indirect leak of 1920 byte(s) in 40 object(s) allocated from: 
> Instruction.C:628
> Indirect leak of 1920 byte(s) in 40 object(s) allocated from: stl_list.h:1213
> Indirect leak of 1920 byte(s) in 40 object(s) allocated from: stl_list.h:1907
> Indirect leak of 1920 byte(s) in 40 object(s) allocated from: stl_list.h:438
> Indirect leak of 1920 byte(s) in 40 object(s) allocated from: stl_list.h:630
> Indirect leak of 2128 byte(s) in 38 object(s) allocated from: 
> InstructionDecoderImpl.C:136
> Indirect leak of 4880 byte(s) in 122 object(s) allocated from: 
> InstructionDecoder-x86.C:1572
> Indirect leak of 5560 byte(s) in 139 object(s) allocated from: 
> InstructionDecoder-x86.C:405
> Indirect leak of 8480 byte(s) in 212 object(s) allocated from: 
> InstructionDecoder-x86.C:1605
> Indirect leak of 10040 byte(s) in 251 object(s) allocated from: 
> InstructionDecoder-x86.C:419
> Indirect leak of 15664 byte(s) in 178 object(s) allocated from: 
> InstructionDecoderImpl.C:85
> Direct leak of 15904 byte(s) in 284 object(s) allocated from: 
> InstructionDecoderImpl.C:120
> Direct leak of 15904 byte(s) in 284 object(s) allocated from: 
> singleton_object_pool.h:44
> Direct leak of 17864 byte(s) in 319 object(s) allocated from: 
> InstructionDecoderImpl.C:144
> Direct leak of 30600 byte(s) in 765 object(s) allocated from: 
> InstructionDecoder-x86.C:168
> Indirect leak of 32280 byte(s) in 807 object(s) allocated from: 
> InstructionDecoder-x86.C:388
> Direct leak of 37968 byte(s) in 678 object(s) allocated from: 
> InstructionDecoderImpl.C:128
> Direct leak of 37968 byte(s) in 678 object(s) allocated from: 
> new_allocator.h:114
> Direct leak of 37968 byte(s) in 678 object(s) allocated from: 
> singleton_object_pool.h:53
> Direct leak of 42840 byte(s) in 765 object(s) allocated from: 
> InstructionDecoder-x86.C:169
> Indirect leak of 144760 byte(s) in 2585 object(s) allocated from: 
> InstructionDecoder-x86.C:193
> Indirect leak of 189728 byte(s) in 2156 object(s) allocated from: 
> InstructionDecoderImpl.C:91
> Indirect leak of 324160 byte(s) in 8104 object(s) allocated from: 
> InstructionDecoder-x86.C:377
> Indirect leak of 2411200 byte(s) in 60280 object(s) allocated from: 
> InstructionDecoder-x86.C:1143
> 
> ___
> Dyninst-api mailing list
> Dyninst-api@cs.wisc.edu
> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/ma

[DynInst_API:] [dyninst/dyninst] c20f39: Fix jump table finalization

2020-03-01 Thread Xiaozhu Meng
  Branch: refs/heads/test_reloc_fix
  Home:   https://github.com/dyninst/dyninst
  Commit: c20f39b8e5428a94d3a61f6f60cab9b5402154eb
  
https://github.com/dyninst/dyninst/commit/c20f39b8e5428a94d3a61f6f60cab9b5402154eb
  Author: Xiaozhu Meng 
  Date:   2020-03-01 (Sun, 01 Mar 2020)

  Changed paths:
M parseAPI/src/Parser.C

  Log Message:
  ---
  Fix jump table finalization


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 091029: Don't use software breakpoints when creating traps...

2020-02-26 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: 091029ad62801355787390393f213bed9def0978
  
https://github.com/dyninst/dyninst/commit/091029ad62801355787390393f213bed9def0978
  Author: Xiaozhu Meng 
  Date:   2019-09-02 (Mon, 02 Sep 2019)

  Changed paths:
M dyninstAPI/src/dynProcess.C

  Log Message:
  ---
  Don't use software breakpoints when creating traps for springboards (#637)

We should only emit trap instructions and record trap mapping for trap 
springboards, without involving software breakpoints.


  Commit: a7d412137271bf0bd545151675c81d6f1b9be0c1
  
https://github.com/dyninst/dyninst/commit/a7d412137271bf0bd545151675c81d6f1b9be0c1
  Author: Jonathon Anderson <17242663+blue...@users.noreply.github.com>
  Date:   2019-09-04 (Wed, 04 Sep 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-aarch64.C
M instructionAPI/src/InstructionDecoder-aarch64.h
M instructionAPI/src/aarch64_opcode_tables.C

  Log Message:
  ---
  Use static AArch64 decoder tables. (#633)

Fixes dyninst/dyninst#630

Other improvements include faster compile time (for affected files), ~1.2s less 
lazy init time, ~7.8MiB smaller binary, and ~10MiB less heap usage.

* Fixes for the more pedantic issues

* Splice out the operandFactory tables.

* Splice out the nodeBranches tables.


  Commit: b69554bd2c70260298d609af95bb2f3a43a9893a
  
https://github.com/dyninst/dyninst/commit/b69554bd2c70260298d609af95bb2f3a43a9893a
  Author: Tim Haines 
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
M cmake/Boost.cmake
M cmake/ElfUtils.cmake
M cmake/LibIberty.cmake
M cmake/ThreadingBuildingBlocks.cmake

  Log Message:
  ---
  Allow CMake files for dependencies to be included multiple times (#639)

Previously, multiple inclusions would result in the library being looked
up or downloaded/built multiple times. This ensures these actions happen
only once.


  Commit: af01eab4d78af03b493f52c8157a70144f106469
  
https://github.com/dyninst/dyninst/commit/af01eab4d78af03b493f52c8157a70144f106469
  Author: Tim Haines 
  Date:   2019-10-04 (Fri, 04 Oct 2019)

  Changed paths:
M CMakeLists.txt
M cmake/Boost.cmake
M cmake/ElfUtils.cmake
M cmake/LibIberty.cmake
M cmake/ThreadingBuildingBlocks.cmake

  Log Message:
  ---
  Use CMAKE_xx_COMPILER when building external dependencies (#636)


  Commit: 798fd8731e82c4a28432307ceef2f4697dcd2b2e
  
https://github.com/dyninst/dyninst/commit/798fd8731e82c4a28432307ceef2f4697dcd2b2e
  Author: Tim Haines 
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
M symtabAPI/doc/API/Types/Type.tex
M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  ---
  Change dataTypeDefine -> DataTypedef in DataClass enum documentation (#650)

Fixes #623
* Change dataTypeDefine -> DataTypedef in DataClass enum
* Update PDF


  Commit: 8d9a99e99358f2c4ae46c7c932384439dfbe48d1
  
https://github.com/dyninst/dyninst/commit/8d9a99e99358f2c4ae46c7c932384439dfbe48d1
  Author: Tim Haines 
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
M symtabAPI/doc/API/Types/Type.tex
M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  ---
  Fix typo in declaration of 'create' in Section 8.3 (#659)


  Commit: 67948100c6e7bdb8d23b4ca101eaf2d4a46855e2
  
https://github.com/dyninst/dyninst/commit/67948100c6e7bdb8d23b4ca101eaf2d4a46855e2
  Author: Tim Haines 
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
M cmake/ThreadingBuildingBlocks.cmake

  Log Message:
  ---
  Update handling of TBB CMake file for clang (#654)

* Update version handling in TBB CMake file
* Fix passing 'compiler' to TBB build system for clang


  Commit: 210729ef1b95ba4e7b43a33ed613f5b4de655134
  
https://github.com/dyninst/dyninst/commit/210729ef1b95ba4e7b43a33ed613f5b4de655134
  Author: Tim Haines 
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
M symtabAPI/doc/API/Types/Type.tex
M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  ---
  Fix spelling of getTypedefType in Section 8.1 of SymtabAPI docs (#660)


  Commit: 08743d9446c4ce2a494702087caedf10f82394b1
  
https://github.com/dyninst/dyninst/commit/08743d9446c4ce2a494702087caedf10f82394b1
  Author: Tim Haines 
  Date:   2019-10-10 (Thu, 10 Oct 2019)

  Changed paths:
M symtabAPI/doc/API/Types/Type.tex
M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  ---
  Rename getType() -> getDataClass() in Section 8.1 of SymtabAPI docs (#661)


  Commit: e5850fecd70d4a20b93f3fd442508dc7f16adc5d
  
https://github.com/dyninst/dyninst/commit/e5850fecd70d4a20b93f3fd442508dc7f16adc5d
  Author: Tim Haines 
  Date:   2019-10-11 (Fri, 11 Oct 2019)

  Changed paths:
M parseAPI/h/CFG.h

  Log Message:
  ---
  Delete duplicate friend declaration of Parser in Block (#649)

Fixes #615


  Commit: 22110074036737595aec6c2a73

[DynInst_API:] [dyninst/dyninst] ee5415: Update Examples in dataflowAPI (#700)

2020-01-29 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: ee541552195c4b437b86f3ee3ee5fd9bb86fc704
  
https://github.com/dyninst/dyninst/commit/ee541552195c4b437b86f3ee3ee5fd9bb86fc704
  Author: Xiaozhu Meng 
  Date:   2020-01-29 (Wed, 29 Jan 2020)

  Changed paths:
M dataflowAPI/doc/Examples.tex
M dataflowAPI/doc/dataflowAPI.pdf

  Log Message:
  ---
  Update Examples in dataflowAPI (#700)

* Update Examples.tex file in dataflowAPI
* Update pdf

Co-authored-by: Tim Haines 


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 99b3ab: Update Examples.tex file in dataflowAPI

2020-01-29 Thread Xiaozhu Meng
  Branch: refs/heads/dataflowAPI_example
  Home:   https://github.com/dyninst/dyninst
  Commit: 99b3ab10a225ce63d6c1fd850e50ab037241e7fe
  
https://github.com/dyninst/dyninst/commit/99b3ab10a225ce63d6c1fd850e50ab037241e7fe
  Author: Xiaozhu Meng 
  Date:   2020-01-29 (Wed, 29 Jan 2020)

  Changed paths:
M dataflowAPI/doc/Examples.tex

  Log Message:
  ---
  Update Examples.tex file in dataflowAPI


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] a0afdb: Fixes for AbsRegion and jump table index slicing i...

2020-01-23 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: a0afdbb7993cb046edf404d556e32b4ead2374b7
  
https://github.com/dyninst/dyninst/commit/a0afdbb7993cb046edf404d556e32b4ead2374b7
  Author: Xiaozhu Meng 
  Date:   2020-01-23 (Thu, 23 Jan 2020)

  Changed paths:
M dataflowAPI/src/AbslocInterface.C
M parseAPI/src/SymbolicExpression.C

  Log Message:
  ---
  Fixes for AbsRegion and jump table index slicing involving global variable 
(#695)

1. When converting AbsRegion, PC on x86/64 should use post-instruction address

2. During jump table index slicing, we should only read read-only memory 
locations.
   Note that we still allow reading writable memory locations during jump table 
reads
   as jump tables may be put in writable sections by compilers


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 350c4f: 1. When converting AbsRegion, PC on x86/64 should ...

2020-01-18 Thread Xiaozhu Meng
  Branch: refs/heads/jump_table_fixes
  Home:   https://github.com/dyninst/dyninst
  Commit: 350c4f0fd8051028f53f6904aa1a39dfe979e3d9
  
https://github.com/dyninst/dyninst/commit/350c4f0fd8051028f53f6904aa1a39dfe979e3d9
  Author: Xiaozhu Meng 
  Date:   2020-01-18 (Sat, 18 Jan 2020)

  Changed paths:
M dataflowAPI/src/AbslocInterface.C
M parseAPI/src/SymbolicExpression.C

  Log Message:
  ---
  1. When converting AbsRegion, PC on x86/64 should use post-instruction address
2. During jump table index slicing, we should only read read-only memory 
locations.
   Note that we still allow reading writable memory locations during jump table 
reads
   as jump tables may be put in writable sections by compilers


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] d233ae: Parallel DWARF parsing and improved parallel code ...

2020-01-13 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: d233ae7596cd74201d634c2f0f7d7a0e3d628e79
  
https://github.com/dyninst/dyninst/commit/d233ae7596cd74201d634c2f0f7d7a0e3d628e79
  Author: Xiaozhu Meng 
  Date:   2020-01-13 (Mon, 13 Jan 2020)

  Changed paths:
M CMakeLists.txt
M cmake/ElfUtils.cmake
A cmake/Modules/FindValgrind.cmake
M common/CMakeLists.txt
M common/h/IBSTree-fast.h
M common/h/IBSTree.h
A common/h/concurrent.h
R common/h/mcs-lock.h
R common/h/pfq-rwlock.h
R common/h/race-detector-annotations.h
M common/src/arch-x86.C
A common/src/concurrent.C
M common/src/linuxKludges.C
R common/src/mcs-lock.C
M common/src/pfq-rwlock.C
R common/src/race-detector-annotations.C
M common/src/singleton_object_pool.h
A common/src/vgannotations.h
M dataflowAPI/h/slicing.h
M dataflowAPI/src/debug_dataflow.C
M dwarf/CMakeLists.txt
M dwarf/h/dwarfFrameParser.h
M dwarf/src/dwarfFrameParser.C
M dyninstAPI/h/BPatch_type.h
M dyninstAPI/src/BPatch.C
M dyninstAPI/src/BPatch_addressSpace.C
M dyninstAPI/src/BPatch_function.C
M dyninstAPI/src/BPatch_module.C
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/BPatch_type.C
M dyninstAPI/src/Parsing.C
M dyninstAPI/src/Parsing.h
M dyninstAPI/src/Relocation/Springboard.C
M dyninstAPI/src/function.C
M dyninstAPI/src/parse-cfg.h
M dyninstAPI/src/unix.C
M dyninstAPI_RT/CMakeLists.txt
M examples/CMakeLists.txt
M instructionAPI/src/InstructionDecoderImpl.C
M instructionAPI/src/Operation.C
M parseAPI/CMakeLists.txt
M parseAPI/h/CFG.h
M parseAPI/h/CFGFactory.h
M parseAPI/h/CodeSource.h
M parseAPI/h/LockFreeQueue.h
M parseAPI/src/Block.C
M parseAPI/src/BoundFactCalculator.C
M parseAPI/src/CFGFactory.C
M parseAPI/src/CFGModifier.C
M parseAPI/src/CodeObject.C
M parseAPI/src/Function.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/IA_aarch64.h
M parseAPI/src/IA_power.h
M parseAPI/src/IndirectASTVisitor.C
M parseAPI/src/IndirectASTVisitor.h
M parseAPI/src/IndirectAnalyzer.C
M parseAPI/src/IndirectAnalyzer.h
M parseAPI/src/JumpTableFormatPred.C
M parseAPI/src/JumpTableFormatPred.h
M parseAPI/src/LoopAnalyzer.C
M parseAPI/src/ParseData.C
M parseAPI/src/ParseData.h
M parseAPI/src/Parser-speculative.C
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h
M parseAPI/src/ParserDetails.C
M parseAPI/src/ProbabilisticParser.C
M parseAPI/src/ProbabilisticParser.h
M parseAPI/src/SymtabCodeSource.C
M parseAPI/src/ThunkData.C
M parseAPI/src/debug_parse.C
M parseThat/CMakeLists.txt
M stackwalk/src/x86-swk.C
M symtabAPI/CMakeLists.txt
M symtabAPI/h/Aggregate.h
M symtabAPI/h/Collections.h
M symtabAPI/h/Function.h
M symtabAPI/h/Module.h
M symtabAPI/h/StringTable.h
M symtabAPI/h/Symbol.h
M symtabAPI/h/Symtab.h
M symtabAPI/h/Type.h
M symtabAPI/h/Variable.h
M symtabAPI/src/Aggregate.C
M symtabAPI/src/Collections.C
M symtabAPI/src/Function.C
M symtabAPI/src/Module.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object-elf.h
M symtabAPI/src/Object.C
M symtabAPI/src/Object.h
M symtabAPI/src/Symtab-edit.C
M symtabAPI/src/Symtab-lookup.C
M symtabAPI/src/Symtab.C
M symtabAPI/src/Type-mem.h
M symtabAPI/src/Type.C
M symtabAPI/src/Variable.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/dwarfWalker.h
M symtabAPI/src/parseStab.C

  Log Message:
  ---
  Parallel DWARF parsing and improved parallel code parsing (#651)

* changes for parallelizing symtabapi

* Tweaks to use OpenMP (still one last reducer left)

* Mark a false race in Type.C.
std::call_once has a barrier at the end, so anything that happens inside is 
visible to anything that happens after.

* Replace the Cilk reducer with an OpenMP reduction

* Remove some dead code, and move the reducer into the source file.

* Mark the last race so far, move VG macros to a separate file.

* Annotate the two core locks, negating a lot of the race reports
Implementation is not great though, I moved mcs_init to be a real function 
call.
There might be a better way to do this, will investigate at some point.

* Very awkwardly annotate a parallel hashmap by key. Consider implementing 
better magic.

* Wrap the callback in `omp critical`, to make it parallel-safe no matter what 
happens.

* Swap out the vector for a TBB concurrent_queue.

* Remove some unnessesary annotations, using a proper OpenMP handles them.

* Revert the core lock annotations, they don't actually really work.

* Macro-replace the locks with boost equivalents. Revert this commit later once 
the testing is complete, or refactor it fully out.

* Replace the 1-entry cache with a vector that expands with the number of 
threads.

* Reus

[DynInst_API:] [dyninst/dyninst] 0dffe9: Prevent corruption to rax during stack alignment o...

2019-11-17 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 0dffe9f69384b49858006c21667387053d3abcf2
  
https://github.com/dyninst/dyninst/commit/0dffe9f69384b49858006c21667387053d3abcf2
  Author: Xiaozhu Meng 
  Date:   2019-11-17 (Sun, 17 Nov 2019)

  Changed paths:
M dyninstAPI/src/emit-x86.C

  Log Message:
  ---
  Prevent corruption to rax during stack alignment on x86-64 (#670)


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] cf195a: Fix instrumentation regressions for libc-2.29 on A...

2019-11-16 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: cf195af6655d688a611e499c43a88efc8dd2e0fb
  
https://github.com/dyninst/dyninst/commit/cf195af6655d688a611e499c43a88efc8dd2e0fb
  Author: Xiaozhu Meng 
  Date:   2019-11-16 (Sat, 16 Nov 2019)

  Changed paths:
M dataflowAPI/src/liveness.C
M dyninstAPI/src/dynProcess.C
M dyninstAPI/src/dynProcess.h
M dyninstAPI/src/emit-aarch64.C
M dyninstAPI/src/pcEventHandler.C
M dyninstAPI/src/pcEventHandler.h
M dyninstAPI_RT/h/dyninstAPI_RT.h
M dyninstAPI_RT/src/RTcommon.c
M dyninstAPI_RT/src/RTcommon.h
M dyninstAPI_RT/src/RTlinux.c
M dyninstAPI_RT/src/RTthread-aarch64.c
M proccontrol/src/linux.C
M stackwalk/src/linuxbsd-swk.C

  Log Message:
  ---
  Fix instrumentation regressions for libc-2.29 on ARM (#653)

* Fixes loading pre-instrumentation register values on aarch64
* Fix the handling of trap instruction on ARM for register liveness analysis
* Implement a byte matching heuristic for determining the length of _start
* Implement a spin lock use __atomic_test_and_set on ARM
*   1. Change stop signal from SIGBUS to (SIGRTMIN + 4) in dyninstAPI_RT.
*   2. In dyninstAPI, only do dyninstRT signal check if the signal is indeed 
(SIGRTMIN + 4)
* Refacotr BPatch and DyninstRT to use breakpoint as the way of communication


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 47336e: Implement the check of ThreadDB at BPatch level (#...

2019-11-15 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 47336e6ac185bd2134ff9484c55ef62b7d76f9b7
  
https://github.com/dyninst/dyninst/commit/47336e6ac185bd2134ff9484c55ef62b7d76f9b7
  Author: Xiaozhu Meng 
  Date:   2019-11-15 (Fri, 15 Nov 2019)

  Changed paths:
M dyninstAPI/h/BPatch_process.h
M dyninstAPI/src/BPatch_process.C
M dyninstAPI/src/dynProcess.C
M dyninstAPI/src/dynProcess.h

  Log Message:
  ---
  Implement the check of ThreadDB at BPatch level (#667)


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] dfa578: Refacotr BPatch and DyninstRT to use breakpoint as...

2019-11-05 Thread Xiaozhu Meng
  Branch: refs/heads/arm-reg-load-fix
  Home:   https://github.com/dyninst/dyninst
  Commit: dfa578bb830f7d9606404984c19703db7f373db3
  
https://github.com/dyninst/dyninst/commit/dfa578bb830f7d9606404984c19703db7f373db3
  Author: Xiaozhu Meng 
  Date:   2019-11-05 (Tue, 05 Nov 2019)

  Changed paths:
M dyninstAPI/src/dynProcess.C
M dyninstAPI/src/dynProcess.h
M dyninstAPI/src/pcEventHandler.C
M dyninstAPI/src/pcEventHandler.h
M dyninstAPI_RT/src/RTcommon.c
M dyninstAPI_RT/src/RTcommon.h
M dyninstAPI_RT/src/RTlinux.c
M proccontrol/src/linux.C

  Log Message:
  ---
  Refacotr BPatch and DyninstRT to use breakpoint as the way of communication


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 1d8816: Add the script for converting capstone instruction...

2019-10-31 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: 1d8816ded03ed82b3b74465e3b84041b85d82c17
  
https://github.com/dyninst/dyninst/commit/1d8816ded03ed82b3b74465e3b84041b85d82c17
  Author: Xiaozhu Meng 
  Date:   2019-10-31 (Thu, 31 Oct 2019)

  Changed paths:
A instructionAPI/capstone-interation.py

  Log Message:
  ---
  Add the script for converting capstone instruction to dyninst instruction


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 4c5254: 1. Change stop signal from SIGBUS to (SIGRTMIN + 4...

2019-10-19 Thread Xiaozhu Meng
  Branch: refs/heads/arm-reg-load-fix
  Home:   https://github.com/dyninst/dyninst
  Commit: 4c5254edc4953a126dc3ffe29aa0e533212d219a
  
https://github.com/dyninst/dyninst/commit/4c5254edc4953a126dc3ffe29aa0e533212d219a
  Author: Xiaozhu Meng 
  Date:   2019-10-19 (Sat, 19 Oct 2019)

  Changed paths:
M dyninstAPI/src/pcEventHandler.C
M dyninstAPI_RT/h/dyninstAPI_RT.h

  Log Message:
  ---
  1. Change stop signal from SIGBUS to (SIGRTMIN + 4) in dyninstAPI_RT.
2. In dyninstAPI, only do dyninstRT signal check if the signal is indeed 
(SIGRTMIN + 4)


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] cecd1a: Prevent corruption to rax during stack alignment o...

2019-10-17 Thread Xiaozhu Meng
  Branch: refs/heads/flag_saving_rax_corruption
  Home:   https://github.com/dyninst/dyninst
  Commit: cecd1a81e7f90ef06a6b4373525cccecc1dbe778
  
https://github.com/dyninst/dyninst/commit/cecd1a81e7f90ef06a6b4373525cccecc1dbe778
  Author: Xiaozhu Meng 
  Date:   2019-10-02 (Wed, 02 Oct 2019)

  Changed paths:
M dyninstAPI/src/emit-x86.C

  Log Message:
  ---
  Prevent corruption to rax during stack alignment on x86-64


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 109085: Fixes loading pre-instrumentation register values ...

2019-10-16 Thread Xiaozhu Meng
  Branch: refs/heads/dev
  Home:   https://github.com/dyninst/dyninst
  Commit: 10908590d9195e041debe303e057cb14648b1ce9
  
https://github.com/dyninst/dyninst/commit/10908590d9195e041debe303e057cb14648b1ce9
  Author: Xiaozhu Meng 
  Date:   2019-10-16 (Wed, 16 Oct 2019)

  Changed paths:
M dyninstAPI/src/emit-aarch64.C

  Log Message:
  ---
  Fixes loading pre-instrumentation register values on aarch64


  Commit: 4269498afa95491773b70058cdef5b4f2ec336e2
  
https://github.com/dyninst/dyninst/commit/4269498afa95491773b70058cdef5b4f2ec336e2
  Author: Xiaozhu Meng 
  Date:   2019-10-16 (Wed, 16 Oct 2019)

  Changed paths:
M dataflowAPI/src/liveness.C

  Log Message:
  ---
  Fix the handling of trap instruction on ARM for register liveness analysis


  Commit: 18ecec10964be7ae25b98f53a48d14ef175db4f4
  
https://github.com/dyninst/dyninst/commit/18ecec10964be7ae25b98f53a48d14ef175db4f4
  Author: Xiaozhu Meng 
  Date:   2019-10-16 (Wed, 16 Oct 2019)

  Changed paths:
M stackwalk/src/linuxbsd-swk.C

  Log Message:
  ---
  Implement a byte matching heuristic for determining the length of _start


  Commit: c398f9bab64136da2168f73bb6b676d9450df0f3
  
https://github.com/dyninst/dyninst/commit/c398f9bab64136da2168f73bb6b676d9450df0f3
  Author: Xiaozhu Meng 
  Date:   2019-10-16 (Wed, 16 Oct 2019)

  Changed paths:
M dyninstAPI_RT/src/RTthread-aarch64.c

  Log Message:
  ---
  Implement a spin lock use __atomic_test_and_set on ARM


Compare: https://github.com/dyninst/dyninst/compare/3f336487849c...c398f9bab641
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] e005fc: Implement the check of ThreadDB at BPatch level

2019-10-14 Thread Xiaozhu Meng
  Branch: refs/heads/thread_db_check
  Home:   https://github.com/dyninst/dyninst
  Commit: e005fc478a252c88a4d4a8db2b8291d0b557c90e
  
https://github.com/dyninst/dyninst/commit/e005fc478a252c88a4d4a8db2b8291d0b557c90e
  Author: Xiaozhu Meng 
  Date:   2019-10-14 (Mon, 14 Oct 2019)

  Changed paths:
M dyninstAPI/h/BPatch_process.h
M dyninstAPI/src/BPatch_process.C
M dyninstAPI/src/dynProcess.C
M dyninstAPI/src/dynProcess.h

  Log Message:
  ---
  Implement the check of ThreadDB at BPatch level


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


Re: [DynInst_API:] Reg. Dyninst Usage

2019-10-07 Thread Xiaozhu Meng
Hi,

Thanks for your interests in Dyninst.

> On Sep 24, 2019, at 8:04 AM, Deeban Babu  wrote:
> 
> Dear All,
> 
> I am Deeban, grad student from germany. I am interested to learn about 
> disassembling binary and learn more on binary analysis. I am currently trying 
> to see how Dyninst identifies and list jump-tables in a particular binary. I 
> had earlier done it with angr. In that initially we need to build the CFG and 
> cfg.jumptables() command gives a dict indexed by the first basic block 
> address of the jump table (where the indirect jump is). Is there similar way 
> to do in dyninst? I have few queries related:
> Jumptable analysis:
> 
> 1, From your github docs I understand we must use patchAPI for this case 
> (static instrumentation). I have installed dyninst using spack and then I am 
> trying to run the example in patchAPI src but I am not sure how to compile 
> and run them. Is there any basic tutorial link/issue on how to run the 
> examples in different API after installing dyninst using spack?
> 

The ParseAPI of Dyninst implements a static analysis to resolve jump table 
targets, which works well on x86, Power and ARM. ParseAPI does not specifically 
provide an API for querying jump tables. However, you can iterate every 
function and every basic blocks to find whether a basic block ends with a jump 
table. 

By design, Dyninst does not need any instrumentation for resolving jump tables. 
If you find jump tables that are not properly resolved, you file a bug report 
on the Dyninst github webpage as an issue (https://github.com/dyninst/dyninst 
). 

If you are interested in using instrumentation (regardless of static 
instrumentation or dynamic instrumentation) for resolving indirect calls or 
indirect tail calls, you can use BPatch_dynamicTargetExpr() provided in the 
BPatch level interface. I don’t think you need to use PatchAPI for control flow 
related instrumentation. 

> 2, It would be great to know if there is a built in command for building cfg 
> and getting the jumptables for a particular binary.
> 
> 

The ParseAPI example contains the code needed to construct the CFG and iterate 
functions and basic blocks. 

> Noreturn analysis:
> 
> I am also interested in identifying no-return functions using dyninst. (i.e 
> (1) does not have a return (instruction) AND (2) does not tail-call into a 
> return function.)From this issue 
>  I assume that we need to use 
> parseAPI in order to instrument a program to identify no return functions. If 
> there is any built in command for this also please do let me know. Otherwise 
> I will write some code for this.
> 

The following interface returns whether it is a non-returning function.

https://github.com/dyninst/dyninst/blob/master/parseAPI/h/CFG.h#L534 

> I am not sure whether it is correct to ask this here or to ask in git 
> platforms. Being amateur in this field I would highly appreciate any kind of 
> inputs you guys would provide for usage of dyninst. Apologies if my questions 
> are very naive. Getting started is the key and your reply will be really 
> helpful for me to move forward and contribute.

There are some ParseAPI example code here:

https://github.com/mxz297/dyninst-tools 

> 
> Thank you very much for taking your time to read my mail. Feel free to share 
> any comments you would like to provide on this.
> 
> Have a great day!
> 
> Thanks and Regards,
> Deeban babu
> ___
> Dyninst-api mailing list
> Dyninst-api@cs.wisc.edu
> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

[DynInst_API:] [dyninst/dyninst] ce93c6: Fix the handling of trap instruction on ARM for re...

2019-10-06 Thread Xiaozhu Meng
  Branch: refs/heads/arm-reg-load-fix
  Home:   https://github.com/dyninst/dyninst
  Commit: ce93c6e5a5b41cc746fa3355d4dbaada05c11aa9
  
https://github.com/dyninst/dyninst/commit/ce93c6e5a5b41cc746fa3355d4dbaada05c11aa9
  Author: Xiaozhu Meng 
  Date:   2019-10-05 (Sat, 05 Oct 2019)

  Changed paths:
M dataflowAPI/src/liveness.C

  Log Message:
  ---
  Fix the handling of trap instruction on ARM for register liveness analysis


  Commit: 68387707701bffb4a571d8023e2dc3e1419c9003
  
https://github.com/dyninst/dyninst/commit/68387707701bffb4a571d8023e2dc3e1419c9003
  Author: Xiaozhu Meng 
  Date:   2019-10-06 (Sun, 06 Oct 2019)

  Changed paths:
M stackwalk/src/linuxbsd-swk.C

  Log Message:
  ---
  Implement a byte matching heuristic for determining the length of _start


  Commit: f65050b519a2e354dd9c48007ce8443b5edfd2f5
  
https://github.com/dyninst/dyninst/commit/f65050b519a2e354dd9c48007ce8443b5edfd2f5
  Author: Xiaozhu Meng 
  Date:   2019-10-06 (Sun, 06 Oct 2019)

  Changed paths:
M dyninstAPI_RT/src/RTthread-aarch64.c

  Log Message:
  ---
  Implement a spin lock use __atomic_test_and_set on ARM


Compare: https://github.com/dyninst/dyninst/compare/295571339aa9...f65050b519a2
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 295571: Fixes loading pre-instrumentation register values ...

2019-10-04 Thread Xiaozhu Meng
  Branch: refs/heads/arm-reg-load-fix
  Home:   https://github.com/dyninst/dyninst
  Commit: 295571339aa920b958aa5beddd197c624aba92ab
  
https://github.com/dyninst/dyninst/commit/295571339aa920b958aa5beddd197c624aba92ab
  Author: Xiaozhu Meng 
  Date:   2019-10-04 (Fri, 04 Oct 2019)

  Changed paths:
M dyninstAPI/src/emit-aarch64.C

  Log Message:
  ---
  Fixes loading pre-instrumentation register values on aarch64


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] c170c8: e_No_Entry should be invalid instruction

2019-09-16 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: c170c8cf2549bf99a8a692c6d4cae8d3cda7bc00
  
https://github.com/dyninst/dyninst/commit/c170c8cf2549bf99a8a692c6d4cae8d3cda7bc00
  Author: Xiaozhu Meng 
  Date:   2019-09-15 (Sun, 15 Sep 2019)

  Changed paths:
M instructionAPI/src/Instruction.C

  Log Message:
  ---
  e_No_Entry should be invalid instruction


  Commit: 48de92d8bb862f27b686863b8377f0df4b0d0d29
  
https://github.com/dyninst/dyninst/commit/48de92d8bb862f27b686863b8377f0df4b0d0d29
  Author: Xiaozhu Meng 
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-Capstone.C

  Log Message:
  ---
  Fix Result_Type for immediate operands


  Commit: 2359707397bb2aca55d2f7d24bfa77396fb5ee90
  
https://github.com/dyninst/dyninst/commit/2359707397bb2aca55d2f7d24bfa77396fb5ee90
  Author: Xiaozhu Meng 
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
M instructionAPI/src/Instruction.C

  Log Message:
  ---
  Do not decode operands for INVALID opcode


  Commit: 2dfdb68720bc7cdc2b26c24f4c0ace1cc27b144a
  
https://github.com/dyninst/dyninst/commit/2dfdb68720bc7cdc2b26c24f4c0ace1cc27b144a
  Author: Xiaozhu Meng 
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
M instructionAPI/CMakeLists.txt
A instructionAPI/src/InstructionDecoder-Capstone-x86.C
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h

  Log Message:
  ---
  The implicity register conversion between 32-bit and 64-bit does not work.

Add explicit x86 32-bit register conversion from Capstone to Dyninst.

Split Capstone x86 code into a separate file to reduce compilation time


  Commit: e723bed54600987b8a1765e2da3f7d0870186827
  
https://github.com/dyninst/dyninst/commit/e723bed54600987b8a1765e2da3f7d0870186827
  Author: Xiaozhu Meng 
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-Capstone-x86.C

  Log Message:
  ---
  Handle implict read & written registers


  Commit: 29fcdce3b5a1cf95bb1aede5a1c0fc686f9f0a2f
  
https://github.com/dyninst/dyninst/commit/29fcdce3b5a1cf95bb1aede5a1c0fc686f9f0a2f
  Author: Xiaozhu Meng 
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h

  Log Message:
  ---
  Allow changing decoding architecture at run time


  Commit: 257219b0bafd317ea421c884769ea5188d790bce
  
https://github.com/dyninst/dyninst/commit/257219b0bafd317ea421c884769ea5188d790bce
  Author: Xiaozhu Meng 
  Date:   2019-09-16 (Mon, 16 Sep 2019)

  Changed paths:
M dataflowAPI/src/RoseInsnFactory.C
M parseAPI/src/IA_IAPI.C

  Log Message:
  ---
  Delete unnecessary assert and handle implicit operand for call instruction to 
ROSE


Compare: https://github.com/dyninst/dyninst/compare/03e3f7a43b1a...257219b0bafd
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-09-11 Thread Xiaozhu Meng
  Branch: refs/heads/tlsdesc
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-09-11 Thread Xiaozhu Meng
  Branch: refs/heads/refact_fixPhdr
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-09-11 Thread Xiaozhu Meng
  Branch: refs/heads/dynamic_detach_fix
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 321bac: Get rid of old x86/x86-64 decoder in InstructionAPI.

2019-09-05 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: 321bac1afaddc522ad13f801a5c0274a4e795df6
  
https://github.com/dyninst/dyninst/commit/321bac1afaddc522ad13f801a5c0274a4e795df6
  Author: Xiaozhu Meng 
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
M instructionAPI/CMakeLists.txt
R instructionAPI/src/InstructionDecoder-x86.C
R instructionAPI/src/InstructionDecoder-x86.h
M instructionAPI/src/InstructionDecoderImpl.C

  Log Message:
  ---
  Get rid of old x86/x86-64 decoder in InstructionAPI.

There are still remaining x86/x86-64 decoding code in common, which is used by 
BPatch.


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 0a06e0: Get rid of the concept of decoding back end

2019-09-05 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: 0a06e04879a2bb5d58333460623930523ebaaeda
  
https://github.com/dyninst/dyninst/commit/0a06e04879a2bb5d58333460623930523ebaaeda
  Author: Xiaozhu Meng 
  Date:   2019-09-05 (Thu, 05 Sep 2019)

  Changed paths:
M instructionAPI/h/Instruction.h
M instructionAPI/h/InstructionDecoder.h
M instructionAPI/src/Instruction.C
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-aarch64.C
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-x86.C
M instructionAPI/src/InstructionDecoder.C
M instructionAPI/src/InstructionDecoderImpl.C
M instructionAPI/src/InstructionDecoderImpl.h

  Log Message:
  ---
  Get rid of the concept of decoding back end


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 091029: Don't use software breakpoints when creating traps...

2019-09-02 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 091029ad62801355787390393f213bed9def0978
  
https://github.com/dyninst/dyninst/commit/091029ad62801355787390393f213bed9def0978
  Author: Xiaozhu Meng 
  Date:   2019-09-02 (Mon, 02 Sep 2019)

  Changed paths:
M dyninstAPI/src/dynProcess.C

  Log Message:
  ---
  Don't use software breakpoints when creating traps for springboards (#637)

We should only emit trap instructions and record trap mapping for trap 
springboards, without involving software breakpoints.


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] e703e0: Only use Capstone on x86/x86-64 at this point

2019-08-28 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: e703e0ee3ed31fa3c176600f2c8605e40be61d3d
  
https://github.com/dyninst/dyninst/commit/e703e0ee3ed31fa3c176600f2c8605e40be61d3d
  Author: Xiaozhu Meng 
  Date:   2019-08-28 (Wed, 28 Aug 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoderImpl.C

  Log Message:
  ---
  Only use Capstone on x86/x86-64 at this point


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] ba7c69: Initial coding for integrating Capstone for instru...

2019-08-26 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: ba7c6953ed4b51f6c4d89a08d4de7b6f07f21805
  
https://github.com/dyninst/dyninst/commit/ba7c6953ed4b51f6c4d89a08d4de7b6f07f21805
  Author: Xiaozhu Meng 
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
M CMakeLists.txt
M common/h/entryIDs.h
M instructionAPI/CMakeLists.txt
M instructionAPI/h/Instruction.h
M instructionAPI/h/InstructionDecoder.h
M instructionAPI/src/Instruction.C
A instructionAPI/src/InstructionDecoder-Capstone.C
A instructionAPI/src/InstructionDecoder-Capstone.h
M instructionAPI/src/InstructionDecoder-aarch64.C
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-x86.C
M instructionAPI/src/InstructionDecoder.C
M instructionAPI/src/InstructionDecoderImpl.C
M instructionAPI/src/InstructionDecoderImpl.h

  Log Message:
  ---
  Initial coding for integrating Capstone for instruction decoding

1. Most architecture independent code is done
2. Most x86 code is done


  Commit: 229e8ddbf1a2e49682db335bfe035e95808aeabd
  
https://github.com/dyninst/dyninst/commit/229e8ddbf1a2e49682db335bfe035e95808aeabd
  Author: Xiaozhu Meng 
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
M instructionAPI/h/Instruction.h
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h

  Log Message:
  ---
  Fill Instruction::m_successor, which is needed by ParseAPI


  Commit: 0fb50cca8c1707cb347e7b531d821a7a48ee2b66
  
https://github.com/dyninst/dyninst/commit/0fb50cca8c1707cb347e7b531d821a7a48ee2b66
  Author: Xiaozhu Meng 
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
M dataflowAPI/src/AbslocInterface.C
M instructionAPI/src/InstructionCategories.C
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h
M parseAPI/src/BoundFactCalculator.C

  Log Message:
  ---
  1. Handle opcode alias such as je/jz
2. Should always construct multiply node even if the scale is 1 and add node 
even if the displacment is 0
3. Remove some asserts


  Commit: 5c1884d55f44e47145ac4394bdbf0b05971593a3
  
https://github.com/dyninst/dyninst/commit/5c1884d55f44e47145ac4394bdbf0b05971593a3
  Author: Xiaozhu Meng 
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h

  Log Message:
  ---
  Add opcode normalization


  Commit: 8e163be6f9208eec9a4bb2251e5039a10e063dd3
  
https://github.com/dyninst/dyninst/commit/8e163be6f9208eec9a4bb2251e5039a10e063dd3
  Author: Xiaozhu Meng 
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
M instructionAPI/h/Result.h
M instructionAPI/src/InstructionDecoder-Capstone.C
M parseAPI/src/BoundFactData.C

  Log Message:
  ---
  Add in missed memory operand sizes and remove unncessary asserts


  Commit: 94b1ddc538fe1e836d54698eb07b1528d2e72472
  
https://github.com/dyninst/dyninst/commit/94b1ddc538fe1e836d54698eb07b1528d2e72472
  Author: Xiaozhu Meng 
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h

  Log Message:
  ---
  Switch to use cs_disasm_iter, which allows us providing a cs_insn object as 
input.

This can daramtically reduce malloc/free related to cs_insn objects


  Commit: b70cd337b30cefc391c83807bce90dc3170445ae
  
https://github.com/dyninst/dyninst/commit/b70cd337b30cefc391c83807bce90dc3170445ae
  Author: Xiaozhu Meng 
  Date:   2019-08-26 (Mon, 26 Aug 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h

  Log Message:
  ---
  Add mnemonic mapping inside InstructionAPI, so that we can get rid
of the overhead of Capstone for always constructing string representations


Compare: https://github.com/dyninst/dyninst/compare/1656019d0142...b70cd337b30c
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


Re: [DynInst_API:] control flow enforcement

2019-08-23 Thread Xiaozhu Meng
Yes, Dyninst will need to adjust trampoline installation for Intel control flow 
enforcement, but the needed change should be quite straightforward: instead of 
always installing trampolines at function entry or block entry, we need to skip 
this special NOP-like instruction. 

> On Aug 23, 2019, at 12:31 PM, Stan Cox  wrote:
> 
> Are there any cases where Intel control flow enforcement might have an impact 
> with regard to dyninst?
> https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf
> 
> My brief understanding (starting at page 18 in the doc) is that indirect 
> branch destinations must have a special NOP-like instruction to land on.
> ___
> Dyninst-api mailing list
> Dyninst-api@cs.wisc.edu
> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 51e831: changes for parallelizing symtabapi

2019-08-21 Thread Xiaozhu Meng
r.h
M patchAPI/doc/Makefile.doc
M patchAPI/doc/patchAPI.pdf
A patchAPI/example/README.md
A patchAPI/example/main.cpp
A patchAPI/example/mutatee/main.c
M proccontrol/doc/proccontrol.docx
M proccontrol/doc/proccontrol.pdf
M proccontrol/h/Event.h
M proccontrol/h/PCProcess.h
M proccontrol/h/ProcessSet.h
M proccontrol/src/int_thread_db.C
M proccontrol/src/int_thread_db.h
M proccontrol/src/irpc.h
M proccontrol/src/linux.C
M proccontrol/src/response.h
M proccontrol/src/windows_handler.h
M stackwalk/src/dbginfo-stepper.C
M stackwalk/src/linux-aarch64-swk.C
M symtabAPI/CMakeLists.txt
M symtabAPI/doc/symtabAPI.pdf
M symtabAPI/src/Symbol.C
M symtabAPI/src/emitElf.C

  Log Message:
  ---
  Merge branch 'master' of https://github.com/dyninst/dyninst into 
new-parallel-symtab


  Commit: 9e173272513b6b8a7b17d9c02b159ced3d6d8907
  
https://github.com/dyninst/dyninst/commit/9e173272513b6b8a7b17d9c02b159ced3d6d8907
  Author: blue42u 
  Date:   2019-07-01 (Mon, 01 Jul 2019)

  Changed paths:
M common/src/vgannotations.h

  Log Message:
  ---
  Add a few defines for when Valgrind annotations are turned off.


  Commit: ef903e436fe3d91e0abda09b1f8004d97253b528
  
https://github.com/dyninst/dyninst/commit/ef903e436fe3d91e0abda09b1f8004d97253b528
  Author: blue42u 
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
M common/h/concurrent.h
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object.C
M symtabAPI/src/Object.h

  Log Message:
  ---
  Parallelize some stuff in Object, makes the loading of files a little faster.


  Commit: 12d5d29020f3515f0f7fca0c2b632696007695f6
  
https://github.com/dyninst/dyninst/commit/12d5d29020f3515f0f7fca0c2b632696007695f6
  Author: blue42u 
  Date:   2019-07-17 (Wed, 17 Jul 2019)

  Changed paths:
M symtabAPI/h/Symtab.h
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object.C
M symtabAPI/src/Object.h
M symtabAPI/src/Symtab-edit.C
M symtabAPI/src/Symtab-lookup.C
M symtabAPI/src/Symtab.C

  Log Message:
  ---
  Swap out some hash_maps for their concurrent forms, more easy parallelism.


  Commit: 26147c57e3c0a8d0abeeae1b2f66d13c1de0ad91
  
https://github.com/dyninst/dyninst/commit/26147c57e3c0a8d0abeeae1b2f66d13c1de0ad91
  Author: blue42u 
  Date:   2019-07-18 (Thu, 18 Jul 2019)

  Changed paths:
M symtabAPI/h/Aggregate.h
M symtabAPI/src/Aggregate.C
M symtabAPI/src/Object-elf.C

  Log Message:
  ---
  Actually do the parsing properly, and add a lock where it was needed.


  Commit: e7ddeb8dd14f58a41010c1f91496ff539e28724c
  
https://github.com/dyninst/dyninst/commit/e7ddeb8dd14f58a41010c1f91496ff539e28724c
  Author: blue42u 
  Date:   2019-07-18 (Thu, 18 Jul 2019)

  Changed paths:
M symtabAPI/src/Object-elf.C

  Log Message:
  ---
  Adding more parallelism.


  Commit: af5fb3a376c55eb9d0f434c68f1cd93dd41a4f04
  
https://github.com/dyninst/dyninst/commit/af5fb3a376c55eb9d0f434c68f1cd93dd41a4f04
  Author: Xiaozhu Meng 
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
M parseAPI/src/Parser.C

  Log Message:
  ---
  Get rid of unnecessary serial code in finalization and add parallelism for 
hints initialization


  Commit: 99f10e2b4e29702d3ede08ebb610350560ab0114
  
https://github.com/dyninst/dyninst/commit/99f10e2b4e29702d3ede08ebb610350560ab0114
  Author: blue42u 
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
M common/src/arch-x86.C
M parseAPI/src/IA_IAPI.C
M parseAPI/src/IA_IAPI.h
M parseAPI/src/ParseData.C

  Log Message:
  ---
  Removed a lock, and attempts to fix the resulting issues that arose 
afterwards.


  Commit: a30a50978cae2c388a494e5b732fcddd834d7148
  
https://github.com/dyninst/dyninst/commit/a30a50978cae2c388a494e5b732fcddd834d7148
  Author: blue42u 
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
M parseAPI/src/Parser.C
M parseAPI/src/Parser.h

  Log Message:
  ---
  Tweaks to remove the phase-based approach


  Commit: e9c83a1b34cb51e841bba144f866371e65f2ef70
  
https://github.com/dyninst/dyninst/commit/e9c83a1b34cb51e841bba144f866371e65f2ef70
  Author: Xiaozhu Meng 
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
M parseAPI/src/Parser.C
M parseAPI/src/SymtabCodeSource.C

  Log Message:
  ---
  1. Fix missing parsed edges caused by early resuming frames
2. Always choosing the alphabetically smallest name for a function if there are 
multiple


  Commit: b8145f5a025ec6dd7ade98f19a93f4cbbfa1d4e8
  
https://github.com/dyninst/dyninst/commit/b8145f5a025ec6dd7ade98f19a93f4cbbfa1d4e8
  Author: Xiaozhu Meng 
  Date:   2019-07-25 (Thu, 25 Jul 2019)

  Changed paths:
M parseAPI/src/ParseData.h
M parseAPI/src/Parser.C

  Log Message:
  ---
  Delete swap_busy


  Commit: 3f6f9b407499fb2f97920c4dced8f

[DynInst_API:] [dyninst/dyninst] f409dc: In dynamic instrumentation, trap springboards are ...

2019-08-16 Thread Xiaozhu Meng
  Branch: refs/heads/dynamic_detach_fix
  Home:   https://github.com/dyninst/dyninst
  Commit: f409dc2ad13871f03057989f71ae481c655cbda9
  
https://github.com/dyninst/dyninst/commit/f409dc2ad13871f03057989f71ae481c655cbda9
  Author: Xiaozhu Meng 
  Date:   2019-08-16 (Fri, 16 Aug 2019)

  Changed paths:
M dyninstAPI/src/dynProcess.C

  Log Message:
  ---
  In dynamic instrumentation, trap springboards are treated as software 
breakpoints and are removed when detaching from the mutatee.

We should only emit trap instructions and record trap mapping for trap 
springboards, without involving software breakpoints.


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


Re: [DynInst_API:] ppcle detach removes snippets

2019-08-16 Thread Xiaozhu Meng
Stan reported this problem as issue 634 
(https://github.com/dyninst/dyninst/issues/634 
) yesterday. I am able to 
reproduce this problem and identify what caused the problem. 

The problem here is that during dynamic instrumentation by attaching to the 
mutatee process, instrumentation seems to be removed by calling 
BPatch_process::detach(), and this problem only shows up on power, not x8664 or 
ARM.

It turns out that in this case, a trap springboard is used to transfer program 
execution from original code to instrumentation. In dynamic instrumentation, 
all trap instructions generated by Dyninst are also considered as software 
break points by Dyninst, and Dyninst decides to remove all software break 
points when it detaches from the mutatee.

I am not sure how many and when software break points are used in Dyninst, but 
a springboard trap does not serve the purpose as a software break point and 
should not be removed during detaching. 

So, my plan is to simply generate a trap instruction when a trap springboard is 
needed, without registering this trap as a software break point.

Let me know if there are any concerns.

Thanks,

—Xiaozhu


> On Jul 16, 2019, at 4:26 PM, Stan Cox  wrote:
> 
> Ah good point:
>  POWER8 (architected), altivec supported
> 
> ___
> Dyninst-api mailing list
> Dyninst-api@cs.wisc.edu
> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Re: [DynInst_API:] ppcle detach removes snippets

2019-07-09 Thread Xiaozhu Meng


> On Jul 8, 2019, at 10:54 AM, Stan Cox  wrote:
> 
> The release folks have a smoke test which essentially does:
> insertSnippet
> continueExecution
> detach
> This works fine on x8664 and aarch64 but not on a ppcle box (kernel-4.1 
> 8.0-112.el8 glibc-2.28-66.el8)
> On ppcle there is no instrumented call to incr; the call to detach removes 
> the instrumented call. If you add a waitForStatusChange before detach (or 
> simply just sleep) then ppcle hits the snippet call to incr just fine.
> 
> Here is the example run:
> 
> ./mutatee -v 10 & LD_LIBRARY_PATH=/usr/lib64/dyninst 
> DYNINSTAPI_RT_LIB=/usr/lib64/dyninst/libdyninstAPI_RT.so ./mutator $!
> [1] 106821
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 0
> MUTATION DONE. MUTATOR IS GOING...
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 0
> 
> And the example run with waitForStatusChange added.  But that really should 
> not be necessary as detach should not remove instrumentation, right?

Hi Stan,

I agree that detach should not remove instrumentation. 

Is it a power 8 or power 9 machine? And presumably it is Dyninst 10.1? Is it 
possible to set up a VM for me to debug this problem?

Before the VM is ready, there are a few quick things for you to try:

(1) "app_proc->detach(true);" actually will continue the mutatee, so you 
don’t have to call "app_proc->continueExecution();” before it. I know that this 
combination works on other platforms, but I just want to isolate the problem. 
Can you see if the same problem occurs if you delete “continueExecution()”?

(2)  detach will remove instrumentations in fork, exec, and exit, which are 
used for controlling the mutatee. Can you go to source file 
dyninstAPI/src/dynProcess.C and comment out lines between 1064 and 1069? These 
lines should look like:


tracedSyscalls_->removePreFork();
tracedSyscalls_->removePostFork();
tracedSyscalls_->removePreExec();
tracedSyscalls_->removePostExec();
tracedSyscalls_->removePreExit();
tracedSyscalls_->removePreLwpExit();

If commenting out these lines makes the instrumentation stay, then it means 
there is some side-effect when removing instrumentation for fork, exec, and 
exit. Again, this is just for diagnosis, but a real attempt to fix anything.

Thanks,

—Xiaozhu




> 
> FUNCTION EXECUTED. VALUE = 0
> FUNCTION EXECUTED. VALUE = 1
> FUNCTION EXECUTED. VALUE = 2
> FUNCTION EXECUTED. VALUE = 3
> FUNCTION EXECUTED. VALUE = 4
> FUNCTION EXECUTED. VALUE = 5
> FUNCTION EXECUTED. VALUE = 6
> FUNCTION EXECUTED. VALUE = 7
> FUNCTION EXECUTED. VALUE = 8
> FUNCTION EXECUTED. VALUE = 9
> MUTATION DONE. MUTATOR IS GOING...
> 
> 
> ___
> Dyninst-api mailing list
> Dyninst-api@cs.wisc.edu
> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

[DynInst_API:] [dyninst/dyninst] e420b7: Add opcode normalization

2019-06-20 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: e420b7b3dc9d218916e0fc527d76942cb89fbe17
  
https://github.com/dyninst/dyninst/commit/e420b7b3dc9d218916e0fc527d76942cb89fbe17
  Author: Xiaozhu Meng 
  Date:   2019-06-18 (Tue, 18 Jun 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h

  Log Message:
  ---
  Add opcode normalization


  Commit: 1656019d01426c9b31bdd04cb9053b84eec697c6
  
https://github.com/dyninst/dyninst/commit/1656019d01426c9b31bdd04cb9053b84eec697c6
  Author: Xiaozhu Meng 
  Date:   2019-06-20 (Thu, 20 Jun 2019)

  Changed paths:
M instructionAPI/h/Result.h
M instructionAPI/src/InstructionDecoder-Capstone.C
M parseAPI/src/BoundFactData.C

  Log Message:
  ---
  Add in missed memory operand sizes and remove unncessary asserts


Compare: https://github.com/dyninst/dyninst/compare/4d4af1a5dab9...1656019d0142
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] ef3215: Fill Instruction::m_successor, which is needed by ...

2019-06-15 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: ef3215239be8201696f7a8a0cc2d131d2b167685
  
https://github.com/dyninst/dyninst/commit/ef3215239be8201696f7a8a0cc2d131d2b167685
  Author: Xiaozhu Meng 
  Date:   2019-06-13 (Thu, 13 Jun 2019)

  Changed paths:
M instructionAPI/h/Instruction.h
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h

  Log Message:
  ---
  Fill Instruction::m_successor, which is needed by ParseAPI


  Commit: 4d4af1a5dab902fa1094af1b5cea1ef5ce4cbeff
  
https://github.com/dyninst/dyninst/commit/4d4af1a5dab902fa1094af1b5cea1ef5ce4cbeff
  Author: Xiaozhu Meng 
  Date:   2019-06-14 (Fri, 14 Jun 2019)

  Changed paths:
M dataflowAPI/src/AbslocInterface.C
M instructionAPI/src/InstructionCategories.C
M instructionAPI/src/InstructionDecoder-Capstone.C
M instructionAPI/src/InstructionDecoder-Capstone.h
M parseAPI/src/BoundFactCalculator.C

  Log Message:
  ---
  1. Handle opcode alias such as je/jz
2. Should always construct multiply node even if the scale is 1 and add node 
even if the displacment is 0
3. Remove some asserts


Compare: https://github.com/dyninst/dyninst/compare/3a4f5c33dba7...4d4af1a5dab9
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 3a4f5c: Initial coding for integrating Capstone for instru...

2019-06-12 Thread Xiaozhu Meng
  Branch: refs/heads/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: 3a4f5c33dba76fcac93638a9d3deccc8ec5fada4
  
https://github.com/dyninst/dyninst/commit/3a4f5c33dba76fcac93638a9d3deccc8ec5fada4
  Author: Xiaozhu Meng 
  Date:   2019-06-12 (Wed, 12 Jun 2019)

  Changed paths:
M CMakeLists.txt
M common/h/entryIDs.h
M instructionAPI/CMakeLists.txt
M instructionAPI/h/Instruction.h
M instructionAPI/h/InstructionDecoder.h
M instructionAPI/src/Instruction.C
A instructionAPI/src/InstructionDecoder-Capstone.C
A instructionAPI/src/InstructionDecoder-Capstone.h
M instructionAPI/src/InstructionDecoder-aarch64.C
M instructionAPI/src/InstructionDecoder-power.C
M instructionAPI/src/InstructionDecoder-x86.C
M instructionAPI/src/InstructionDecoder.C
M instructionAPI/src/InstructionDecoderImpl.C
M instructionAPI/src/InstructionDecoderImpl.h

  Log Message:
  ---
  Initial coding for integrating Capstone for instruction decoding

1. Most architecture independent code is done
2. Most x86 code is done


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


Re: [DynInst_API:] Segmentation fault error with dyninst 10.1

2019-06-03 Thread Xiaozhu Meng
I see. Thanks!

Can you tell us the specific intel compiler version, and your specific
command for building Dyninst and the example? We will try to reproduce your
problem.

On Mon, Jun 3, 2019 at 12:14 PM Abdullah Al-Mamun 
wrote:

> Hi Xiaozhu,
>
> Thank you so much for your response.
>
> I just ran the gdb with the example executable (*a.out), which is
> basically the first example shown on Appendix of the Dyninst-10.1 doc
> <https://github.com/dyninst/dyninst/tree/master/dyninstAPI/doc> *and
> found the following error (attached with this email).
> I also attached the screenshot of the example code that I used from the
> dyninst-10.1 doc.
>
>
> Best regards,
> *Abdullah Al-Mamun*
>
> *PhD Fellow, Computer Science & Engg, University of Nevada, Reno*
> *Joint MSc. (EUMI Double Degree),Computer Science, Univesity of Trento,
> Italy & RWTH Aachen University,Germany *
> *Contact: +1(775)-3575433*
> *Personal Web*
> <https://wolfweb.unr.edu/homepage/aalmamun/abdullahwebsite/>
>
> *"In the middle of every difficulty lies opportunity"** - *Albert
> Einsteine
>
>
> On Sat, Jun 1, 2019 at 4:28 PM Xiaozhu Meng  wrote:
>
>>
>> I get *segmentation fault *error when I compile the example.
>>>
>>
>> Do you really mean you get a segfault when you compile the example?
>>
>> If you encountered a segfault when you "run" the executable, can you use
>> GDB to collect a stack trace?
>>
>> I am trying to instrument a very simple hello.cc file that has a simple
>>> function named "hello" which just prints "hello world".
>>>
>>> Could you please point any direction to get rid of this error?
>>> I am using dyninst 10.1 with boost 1.67.
>>> Any kind of help is appreciated.
>>>
>>> Best regards,
>>> *Abdullah Al-Mamun*
>>>
>>> *PhD Fellow, Computer Science & Engg, University of Nevada, Reno*
>>> *Joint MSc. (EUMI Double Degree),Computer Science, Univesity of Trento,
>>> Italy & RWTH Aachen University,Germany *
>>> *Contact: +1(775)-3575433*
>>> *Personal Web*
>>> <https://wolfweb.unr.edu/homepage/aalmamun/abdullahwebsite/>
>>>
>>> *"In the middle of every difficulty lies opportunity"** - *Albert
>>> Einsteine
>>> ___
>>> Dyninst-api mailing list
>>> Dyninst-api@cs.wisc.edu
>>> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
>>
>> ___
> Dyninst-api mailing list
> Dyninst-api@cs.wisc.edu
> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Re: [DynInst_API:] Segmentation fault error with dyninst 10.1

2019-06-03 Thread Xiaozhu Meng
Hi,

It looks like that you compiled the example with the intel compiler. Do you
compile Dyninst with the same intel compiler? Different compilers may
generate ABI incompatible libraries and executable.

Thanks,

--Xiaozhu

On Sat, Jun 1, 2019 at 6:52 PM Abdullah Al-Mamun 
wrote:

> Hi Xiaozhu,
>
> Thank you so much for your response.
>
> I just ran the gdb with the example executable (*a.out), which is
> basically the first example shown on Appendix of the Dyninst-10.1 doc
> <https://github.com/dyninst/dyninst/tree/master/dyninstAPI/doc> *and
> found the following error (attached with this email).
> I also attached the screenshot of the example code that I used from the
> dyninst-10.1 doc.
>
>
> Best regards,
> *Abdullah Al-Mamun*
>
> *PhD Fellow, Computer Science & Engg, University of Nevada, Reno*
> *Joint MSc. (EUMI Double Degree),Computer Science, Univesity of Trento,
> Italy & RWTH Aachen University,Germany *
> *Contact: +1(775)-3575433*
> *Personal Web*
> <https://wolfweb.unr.edu/homepage/aalmamun/abdullahwebsite/>
>
> *"In the middle of every difficulty lies opportunity"** - *Albert
> Einsteine
>
>
> On Sat, Jun 1, 2019 at 4:28 PM Xiaozhu Meng  wrote:
>
>>
>> I get *segmentation fault *error when I compile the example.
>>>
>>
>> Do you really mean you get a segfault when you compile the example?
>>
>> If you encountered a segfault when you "run" the executable, can you use
>> GDB to collect a stack trace?
>>
>> I am trying to instrument a very simple hello.cc file that has a simple
>>> function named "hello" which just prints "hello world".
>>>
>>> Could you please point any direction to get rid of this error?
>>> I am using dyninst 10.1 with boost 1.67.
>>> Any kind of help is appreciated.
>>>
>>> Best regards,
>>> *Abdullah Al-Mamun*
>>>
>>> *PhD Fellow, Computer Science & Engg, University of Nevada, Reno*
>>> *Joint MSc. (EUMI Double Degree),Computer Science, Univesity of Trento,
>>> Italy & RWTH Aachen University,Germany *
>>> *Contact: +1(775)-3575433*
>>> *Personal Web*
>>> <https://wolfweb.unr.edu/homepage/aalmamun/abdullahwebsite/>
>>>
>>> *"In the middle of every difficulty lies opportunity"** - *Albert
>>> Einsteine
>>> ___
>>> Dyninst-api mailing list
>>> Dyninst-api@cs.wisc.edu
>>> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
>>
>>
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Re: [DynInst_API:] Segmentation fault error with dyninst 10.1

2019-06-01 Thread Xiaozhu Meng
> I get *segmentation fault *error when I compile the example.
>

Do you really mean you get a segfault when you compile the example?

If you encountered a segfault when you "run" the executable, can you use
GDB to collect a stack trace?

I am trying to instrument a very simple hello.cc file that has a simple
> function named "hello" which just prints "hello world".
>
> Could you please point any direction to get rid of this error?
> I am using dyninst 10.1 with boost 1.67.
> Any kind of help is appreciated.
>
> Best regards,
> *Abdullah Al-Mamun*
>
> *PhD Fellow, Computer Science & Engg, University of Nevada, Reno*
> *Joint MSc. (EUMI Double Degree),Computer Science, Univesity of Trento,
> Italy & RWTH Aachen University,Germany *
> *Contact: +1(775)-3575433*
> *Personal Web*
> 
>
> *"In the middle of every difficulty lies opportunity"** - *Albert
> Einsteine
> ___
> Dyninst-api mailing list
> Dyninst-api@cs.wisc.edu
> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

[DynInst_API:] [dyninst/dyninst]

2019-05-16 Thread Xiaozhu Meng
  Branch: refs/tags/v10.1.0
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-16 Thread Xiaozhu Meng
  Branch: refs/heads/bump_version_number
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] d41c5d: Update version number to 10.1.0

2019-05-16 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: d41c5dd9554089b8fc837cf2bb559f03a2a0e03d
  
https://github.com/dyninst/dyninst/commit/d41c5dd9554089b8fc837cf2bb559f03a2a0e03d
  Author: Xiaozhu Meng 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M cmake/shared.cmake
M common/doc/manual_frontpage.tex
M dataflowAPI/doc/dataflowAPI.pdf
M dyninstAPI/doc/dyninstAPI.docx
M dyninstAPI/doc/dyninstAPI.pdf
M instructionAPI/doc/instructionAPI.pdf
M parseAPI/doc/parseAPI.pdf
M patchAPI/doc/Makefile.doc
M patchAPI/doc/patchAPI.pdf
M proccontrol/doc/proccontrol.docx
M proccontrol/doc/proccontrol.pdf
M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  ---
  Update version number to 10.1.0


  Commit: ba7c6735de74df29f4b05982105e1e11e892c6c4
  
https://github.com/dyninst/dyninst/commit/ba7c6735de74df29f4b05982105e1e11e892c6c4
  Author: Xiaozhu Meng 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M .github_changelog_generator
M CHANGELOG.md

  Log Message:
  ---
  Update CHANGELOD for 10.1


  Commit: f0ceed06acc70490a1e5df9be93a5c11d72eb4dd
  
https://github.com/dyninst/dyninst/commit/f0ceed06acc70490a1e5df9be93a5c11d72eb4dd
  Author: Tim 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M README.md

  Log Message:
  ---
  Move advanced build instructions and FAQ to wiki


  Commit: d1b7793223d7da788bfc8bdec1e5eeb2f0413678
  
https://github.com/dyninst/dyninst/commit/d1b7793223d7da788bfc8bdec1e5eeb2f0413678
  Author: Tim 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M cmake/Boost.cmake

  Log Message:
  ---
  Fix doc bug in Boost.cmake


  Commit: fc6212abbb6646c97a3aec1c861fc605ba516993
  
https://github.com/dyninst/dyninst/commit/fc6212abbb6646c97a3aec1c861fc605ba516993
  Author: Tim 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M cmake/LibIberty.cmake
M cmake/Modules/FindLibIberty.cmake

  Log Message:
  ---
  Fix doc bugs in LibIberty


  Commit: 1e2a0f1633d297f8566d0536d4a7746fb85d33fd
  
https://github.com/dyninst/dyninst/commit/1e2a0f1633d297f8566d0536d4a7746fb85d33fd
  Author: Tim 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M README.md

  Log Message:
  ---
  Fix formatting in README


  Commit: ff0aae321af320fc33055df92a4c2bc3c4950378
  
https://github.com/dyninst/dyninst/commit/ff0aae321af320fc33055df92a4c2bc3c4950378
  Author: Tim 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M README.md

  Log Message:
  ---
  Add example usage of CMAKE_INSTALL_PREFIX


  Commit: 0d468bab54d950a770aa224cef9d81bcaf4c5637
  
https://github.com/dyninst/dyninst/commit/0d468bab54d950a770aa224cef9d81bcaf4c5637
  Author: Tim 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M README.md

  Log Message:
  ---
  Fix broken link in README


  Commit: fdc4d6a2a82726f1c2d71cac47ae66c204f9c1ea
  
https://github.com/dyninst/dyninst/commit/fdc4d6a2a82726f1c2d71cac47ae66c204f9c1ea
  Author: Xiaozhu Meng 
  Date:   2019-05-16 (Thu, 16 May 2019)

  Changed paths:
M .github_changelog_generator
M CHANGELOG.md
M README.md
M cmake/Boost.cmake
M cmake/LibIberty.cmake
M cmake/Modules/FindLibIberty.cmake
M cmake/shared.cmake
M common/doc/manual_frontpage.tex
M dataflowAPI/doc/dataflowAPI.pdf
M dyninstAPI/doc/dyninstAPI.docx
M dyninstAPI/doc/dyninstAPI.pdf
M instructionAPI/doc/instructionAPI.pdf
M parseAPI/doc/parseAPI.pdf
M patchAPI/doc/Makefile.doc
M patchAPI/doc/patchAPI.pdf
M proccontrol/doc/proccontrol.docx
M proccontrol/doc/proccontrol.pdf
M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  ---
  Merge pull request #599 from dyninst/bump_version_number

Update version number to 10.1.0


Compare: https://github.com/dyninst/dyninst/compare/a2a2649f17f4...fdc4d6a2a827
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] d41c5d: Update version number to 10.1.0

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/bump_version_number
  Home:   https://github.com/dyninst/dyninst
  Commit: d41c5dd9554089b8fc837cf2bb559f03a2a0e03d
  
https://github.com/dyninst/dyninst/commit/d41c5dd9554089b8fc837cf2bb559f03a2a0e03d
  Author: Xiaozhu Meng 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M cmake/shared.cmake
M common/doc/manual_frontpage.tex
M dataflowAPI/doc/dataflowAPI.pdf
M dyninstAPI/doc/dyninstAPI.docx
M dyninstAPI/doc/dyninstAPI.pdf
M instructionAPI/doc/instructionAPI.pdf
M parseAPI/doc/parseAPI.pdf
M patchAPI/doc/Makefile.doc
M patchAPI/doc/patchAPI.pdf
M proccontrol/doc/proccontrol.docx
M proccontrol/doc/proccontrol.pdf
M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  ---
  Update version number to 10.1.0


  Commit: ba7c6735de74df29f4b05982105e1e11e892c6c4
  
https://github.com/dyninst/dyninst/commit/ba7c6735de74df29f4b05982105e1e11e892c6c4
  Author: Xiaozhu Meng 
  Date:   2019-05-15 (Wed, 15 May 2019)

  Changed paths:
M .github_changelog_generator
M CHANGELOG.md

  Log Message:
  ---
  Update CHANGELOD for 10.1


Compare: https://github.com/dyninst/dyninst/compare/d14bd8d161f1...ba7c6735de74
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/fix-thread_db_process
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/dev-564
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/arm64-cray-fixes
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/pic_fix
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/ARMv8_stackwalk
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/known_test_failures_fixes
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/parallel-parsing-fixes
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/remove_assert
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/ptrace_zeroing
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-15 Thread Xiaozhu Meng
  Branch: refs/heads/boost_1_70_fix
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-14 Thread Xiaozhu Meng
  Branch: refs/heads/fix-sw-stepper
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 874b3b: Fix DwarfFrameParser, decodeDwarfExpression and Dw...

2019-05-14 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 874b3b27cc4c039f029fa4f15b0104e138a5a456
  
https://github.com/dyninst/dyninst/commit/874b3b27cc4c039f029fa4f15b0104e138a5a456
  Author: Sasha @leela 
  Date:   2019-05-09 (Thu, 09 May 2019)

  Changed paths:
M dwarf/h/dwarfFrameParser.h
M dwarf/h/dwarfHandle.h
M dwarf/h/dwarfResult.h
M dwarf/src/dwarfExprParser.C
M dwarf/src/dwarfFrameParser.C
M dwarf/src/dwarfResult.C
M dyninstAPI/src/stackwalk-aarch64.C
M stackwalk/src/dbginfo-stepper.C
M stackwalk/src/linux-aarch64-swk.C

  Log Message:
  ---
  Fix DwarfFrameParser, decodeDwarfExpression and DwarfResult

After porting Dyninst to use libdw, DwarfFrameParser missed dealing
with important Dwarf operations that would decode rules for findind
registers values. These rules were not properly decoded by Dyninst
decodeDwarfExpression, neither were being dealt by DwarFrameParser.
This fix properly retrieves libdw Dwarf operations and decodes them,
making it possible to DebugStepper work, which wasn't even before the
port, when lidwarf was being used on Dyninst 9.3.

Basically, Dwarf frame info can be a simple dwarf expression, representing
a value or a memory address, a location description, or a location list.
Libdw gives the consumer an array of dwarf operations that describes how
to find the value they're looking for, as opposed to libdwarf who gives
the consumer many out parameters that lead to different ways to find a
value. This important change made DwarfFrameParser work only partially
after the port. And this fix came to implement the cases that were not
being considered.


  Commit: 9aa0f8288c5d88e2bb1e3a5f372ce8d5bdedd5dd
  
https://github.com/dyninst/dyninst/commit/9aa0f8288c5d88e2bb1e3a5f372ce8d5bdedd5dd
  Author: Xiaozhu Meng 
  Date:   2019-05-14 (Tue, 14 May 2019)

  Changed paths:
M dwarf/h/dwarfFrameParser.h
M dwarf/h/dwarfHandle.h
M dwarf/h/dwarfResult.h
M dwarf/src/dwarfExprParser.C
M dwarf/src/dwarfFrameParser.C
M dwarf/src/dwarfResult.C
M dyninstAPI/src/stackwalk-aarch64.C
M stackwalk/src/dbginfo-stepper.C
M stackwalk/src/linux-aarch64-swk.C

  Log Message:
  ---
  Merge pull request #596 from dyninst/fix-sw-stepper

Fix DwarfFrameParser, decodeDwarfExpression and DwarfResult


Compare: https://github.com/dyninst/dyninst/compare/85be2b7c995a...9aa0f8288c5d
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] ef82ca: Compilation fix for boost 1.70

2019-05-13 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: ef82ca89c0d97d1df0b1d02a0c5cf3c1d71a6a2a
  
https://github.com/dyninst/dyninst/commit/ef82ca89c0d97d1df0b1d02a0c5cf3c1d71a6a2a
  Author: Xiaozhu Meng 
  Date:   2019-05-13 (Mon, 13 May 2019)

  Changed paths:
M proccontrol/h/Event.h
M proccontrol/h/PCProcess.h
M proccontrol/h/ProcessSet.h
M proccontrol/src/irpc.h
M proccontrol/src/response.h
M proccontrol/src/windows_handler.h

  Log Message:
  ---
  Compilation fix for boost 1.70


  Commit: 85be2b7c995abd51934c23a51a6de73c1316db0c
  
https://github.com/dyninst/dyninst/commit/85be2b7c995abd51934c23a51a6de73c1316db0c
  Author: Xiaozhu Meng 
  Date:   2019-05-13 (Mon, 13 May 2019)

  Changed paths:
M proccontrol/h/Event.h
M proccontrol/h/PCProcess.h
M proccontrol/h/ProcessSet.h
M proccontrol/src/irpc.h
M proccontrol/src/response.h
M proccontrol/src/windows_handler.h

  Log Message:
  ---
  Merge pull request #600 from dyninst/boost_1_70_fix

Compilation fix for boost 1.70


Compare: https://github.com/dyninst/dyninst/compare/1e1b18e93a75...85be2b7c995a
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] ef82ca: Compilation fix for boost 1.70

2019-05-13 Thread Xiaozhu Meng
  Branch: refs/heads/boost_1_70_fix
  Home:   https://github.com/dyninst/dyninst
  Commit: ef82ca89c0d97d1df0b1d02a0c5cf3c1d71a6a2a
  
https://github.com/dyninst/dyninst/commit/ef82ca89c0d97d1df0b1d02a0c5cf3c1d71a6a2a
  Author: Xiaozhu Meng 
  Date:   2019-05-13 (Mon, 13 May 2019)

  Changed paths:
M proccontrol/h/Event.h
M proccontrol/h/PCProcess.h
M proccontrol/h/ProcessSet.h
M proccontrol/src/irpc.h
M proccontrol/src/response.h
M proccontrol/src/windows_handler.h

  Log Message:
  ---
  Compilation fix for boost 1.70


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] cee393: When splitting a block using CFGModifier::split, w...

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: cee393ea7f9800d8715d2198bf8f856474baeaa0
  
https://github.com/dyninst/dyninst/commit/cee393ea7f9800d8715d2198bf8f856474baeaa0
  Author: Xiaozhu Meng 
  Date:   2019-05-11 (Sat, 11 May 2019)

  Changed paths:
M parseAPI/src/CFGModifier.C

  Log Message:
  ---
  When splitting a block using CFGModifier::split, we need to record the
new block in parse_data


  Commit: fa456d425db76b4b23ea5806cd3d3b3901138679
  
https://github.com/dyninst/dyninst/commit/fa456d425db76b4b23ea5806cd3d3b3901138679
  Author: Xiaozhu Meng 
  Date:   2019-05-11 (Sat, 11 May 2019)

  Changed paths:
M dyninstAPI/src/BPatch_snippet.C

  Log Message:
  ---
  Right now, the BPatch_deref and BPatch_regExpr do not specify the size.
Currently the default is 32-bit. Change the default to 64-bit


  Commit: 1885be2eb3a95d7342ec78f5de5a56e8a6b1d01e
  
https://github.com/dyninst/dyninst/commit/1885be2eb3a95d7342ec78f5de5a56e8a6b1d01e
  Author: Xiaozhu Meng 
  Date:   2019-05-11 (Sat, 11 May 2019)

  Changed paths:
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/ast.C
M dyninstAPI/src/ast.h

  Log Message:
  ---
  Augment BPatch_effectiveAddressExpr to accept a second parameter, which
represents the number of bytes to access if reading/writing with this
snippet.

API compatibility is maintained by setting the default value of the
seoncd parameter to 8 (bytes)


  Commit: 1e1b18e93a75e4f0a9ebcbcf1eae9fca8c545733
  
https://github.com/dyninst/dyninst/commit/1e1b18e93a75e4f0a9ebcbcf1eae9fca8c545733
  Author: Xiaozhu Meng 
  Date:   2019-05-11 (Sat, 11 May 2019)

  Changed paths:
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/ast.C
M dyninstAPI/src/ast.h
M parseAPI/src/CFGModifier.C

  Log Message:
  ---
  Merge pull request #564 from dyninst/patch_cfg

Fix bad interactions between patchAPI and parseAPI


Compare: https://github.com/dyninst/dyninst/compare/9486c91ae716...1e1b18e93a75
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/patch_cfg
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] cee393: When splitting a block using CFGModifier::split, w...

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/patch_cfg
  Home:   https://github.com/dyninst/dyninst
  Commit: cee393ea7f9800d8715d2198bf8f856474baeaa0
  
https://github.com/dyninst/dyninst/commit/cee393ea7f9800d8715d2198bf8f856474baeaa0
  Author: Xiaozhu Meng 
  Date:   2019-05-11 (Sat, 11 May 2019)

  Changed paths:
M parseAPI/src/CFGModifier.C

  Log Message:
  ---
  When splitting a block using CFGModifier::split, we need to record the
new block in parse_data


  Commit: fa456d425db76b4b23ea5806cd3d3b3901138679
  
https://github.com/dyninst/dyninst/commit/fa456d425db76b4b23ea5806cd3d3b3901138679
  Author: Xiaozhu Meng 
  Date:   2019-05-11 (Sat, 11 May 2019)

  Changed paths:
M dyninstAPI/src/BPatch_snippet.C

  Log Message:
  ---
  Right now, the BPatch_deref and BPatch_regExpr do not specify the size.
Currently the default is 32-bit. Change the default to 64-bit


  Commit: 1885be2eb3a95d7342ec78f5de5a56e8a6b1d01e
  
https://github.com/dyninst/dyninst/commit/1885be2eb3a95d7342ec78f5de5a56e8a6b1d01e
  Author: Xiaozhu Meng 
  Date:   2019-05-11 (Sat, 11 May 2019)

  Changed paths:
M dyninstAPI/h/BPatch_snippet.h
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/ast.C
M dyninstAPI/src/ast.h

  Log Message:
  ---
  Augment BPatch_effectiveAddressExpr to accept a second parameter, which
represents the number of bytes to access if reading/writing with this
snippet.

API compatibility is maintained by setting the default value of the
seoncd parameter to 8 (bytes)


Compare: https://github.com/dyninst/dyninst/compare/fcb81995be78...1885be2eb3a9
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/amd_insn_decoding
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/dev-10.1-mxz297
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 87af4a: Fix the problem where trap springboards are not wr...

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 87af4a184b225bd6746992f1521454518ebb372e
  
https://github.com/dyninst/dyninst/commit/87af4a184b225bd6746992f1521454518ebb372e
  Author: Xiaozhu Meng 
  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 
  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 
  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 
  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 
  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 
  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 
  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 
  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,
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 
  Date:   2019-04-12 (Fri, 12 Apr 2019)

  Changed paths:
M dyninstAPI/src/mapped_module.C

  Log Message:
  ---
  Delete unnecessary asserts


  Commit

[DynInst_API:] [dyninst/dyninst]

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/ARM_effcAddr
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/fix-tbb-dependencies
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst]

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/ppc_mem_truncate
  Home:   https://github.com/dyninst/dyninst
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 95a877: Merge branch 'pp_springboard' into dev-10.1-mxz297

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/dev-10.1-mxz297
  Home:   https://github.com/dyninst/dyninst
  Commit: 95a877c80d0291ca42344320aba8cafc7db8236c
  
https://github.com/dyninst/dyninst/commit/95a877c80d0291ca42344320aba8cafc7db8236c
  Author: Xiaozhu Meng 
  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 branch 'pp_springboard' into dev-10.1-mxz297


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 4441ed: Disable incomplete implementation for RA compensat...

2019-05-11 Thread Xiaozhu Meng
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
  Commit: 4441edc24eb7f5c2a521cea1ec7ea6fa56bc1552
  
https://github.com/dyninst/dyninst/commit/4441edc24eb7f5c2a521cea1ec7ea6fa56bc1552
  Author: Xiaozhu Meng 
  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


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 99f232: Add ARM effective address calculation (#594)

2019-05-10 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 99f232ea3b83a494ad45b30662e676b7350e05b1
  
https://github.com/dyninst/dyninst/commit/99f232ea3b83a494ad45b30662e676b7350e05b1
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M common/h/dyn_regs.h
M dyninstAPI/src/BPatch_memoryAccessAdapter.C
M dyninstAPI/src/inst-aarch64.C
M dyninstAPI/src/registerSpace.C

  Log Message:
  ---
  Add ARM effective address calculation (#594)


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 4b5a6a: BPatch_effectiveAddress truncates mem addresses on...

2019-05-10 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 4b5a6a6fdcc654820635582f489425c059a7edb7
  
https://github.com/dyninst/dyninst/commit/4b5a6a6fdcc654820635582f489425c059a7edb7
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M dyninstAPI/src/inst-power.C

  Log Message:
  ---
  BPatch_effectiveAddress truncates mem addresses on Power (#593)

In certain circumstances, BPatch_effectiveAddress would generate code that 
truncated
memory addresses to the bottom 32bits. The result is that instrimentation would 
see only
the bottom 32bits of any memory address. Before this patch, the issue occurred 
when instrumentation was applied to load/store instructions where the address 
was located in registers r3-r11 (exclusive). Ideally this function should just 
be straight removed in future releases (only used by emitASLoad).


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] d3c4de: Fix jump table analysis for ROSE Registers (#576)

2019-05-10 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: d3c4de8321a6a82bda2be3f87a88733434c3a724
  
https://github.com/dyninst/dyninst/commit/d3c4de8321a6a82bda2be3f87a88733434c3a724
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M common/src/dyn_regs.C
M dataflowAPI/src/ExpressionConversionVisitor.C
M dataflowAPI/src/RoseInsnFactory.C
M dataflowAPI/src/SymEval.C

  Log Message:
  ---
  Fix jump table analysis for ROSE Registers (#576)

Remove assertions in code from translating Dyninst::MachRegister to ROSE 
Register. In addition, passing the error code back to jump table analysis.


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] d14bd8: Update version number to 10.1.0

2019-05-10 Thread Xiaozhu Meng
  Branch: refs/heads/bump_version_number
  Home:   https://github.com/dyninst/dyninst
  Commit: d14bd8d161f15d801fb136ab8874fdbabdfe635b
  
https://github.com/dyninst/dyninst/commit/d14bd8d161f15d801fb136ab8874fdbabdfe635b
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M cmake/shared.cmake
M common/doc/manual_frontpage.tex
M dataflowAPI/doc/dataflowAPI.pdf
M dyninstAPI/doc/dyninstAPI.docx
M dyninstAPI/doc/dyninstAPI.pdf
M instructionAPI/doc/instructionAPI.pdf
M parseAPI/doc/parseAPI.pdf
M patchAPI/doc/Makefile.doc
M patchAPI/doc/patchAPI.pdf
M proccontrol/doc/proccontrol.docx
M proccontrol/doc/proccontrol.pdf
M symtabAPI/doc/symtabAPI.pdf

  Log Message:
  ---
  Update version number to 10.1.0


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 9e8d72: Add initial support for decoding AMD FMA4 and XOP ...

2019-05-10 Thread Xiaozhu Meng
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 9e8d72d1aa022ec6385dab2ac8525515459b97ac
  
https://github.com/dyninst/dyninst/commit/9e8d72d1aa022ec6385dab2ac8525515459b97ac
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M common/h/entryIDs.h
M common/src/arch-x86.C
M common/src/arch-x86.h
M instructionAPI/src/InstructionDecoder-x86.C

  Log Message:
  ---
  Add initial support for decoding AMD FMA4 and XOP instructions (#575)

* Add initial support for decoding AMD FMA4 instruction, including:

e_vfmaddsd, e_vfmaddss, e_vfmsubpd, e_vfmsubsd, e_vfnmaddpd,
e_vfnmaddsd,

* Add initial support for decoding XOP instructions:

e_vpcomd, e_vpmacsdd, e_vpcmov, e_vpshad

* Add x86 instruction decoding support for vpperm, movbe, vpperm


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] fc2460: Merge branch 'amd_insn_decoding' into dev-10.1

2019-05-10 Thread Xiaozhu Meng
  Branch: refs/heads/dev-10.1-mxz297
  Home:   https://github.com/dyninst/dyninst
  Commit: fc24608dcbcbd521a13f091f9846a8bb6d8177b5
  
https://github.com/dyninst/dyninst/commit/fc24608dcbcbd521a13f091f9846a8bb6d8177b5
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M common/h/entryIDs.h
M common/src/arch-x86.C
M common/src/arch-x86.h
M instructionAPI/src/InstructionDecoder-x86.C

  Log Message:
  ---
  Merge branch 'amd_insn_decoding' into dev-10.1


  Commit: bff6cdd6618a7b549bbbfe083f614f2384296e8b
  
https://github.com/dyninst/dyninst/commit/bff6cdd6618a7b549bbbfe083f614f2384296e8b
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M common/src/dyn_regs.C
M dataflowAPI/src/ExpressionConversionVisitor.C
M dataflowAPI/src/RoseInsnFactory.C
M dataflowAPI/src/SymEval.C

  Log Message:
  ---
  Merge branch 'remove_assert' into dev-10.1


  Commit: a0f59c8b777e101291eb461c052ec50fd147778c
  
https://github.com/dyninst/dyninst/commit/a0f59c8b777e101291eb461c052ec50fd147778c
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 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 branch 'pp_springboard' into dev-10.1


  Commit: eb9ddb5e865150b8cae5d6809be74634a311a7c0
  
https://github.com/dyninst/dyninst/commit/eb9ddb5e865150b8cae5d6809be74634a311a7c0
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M dyninstAPI/src/inst-power.C

  Log Message:
  ---
  Merge branch 'ppc_mem_truncate' into dev-10.1


  Commit: 2a84063d7b278e5d9e2c1138c03482e18ed63097
  
https://github.com/dyninst/dyninst/commit/2a84063d7b278e5d9e2c1138c03482e18ed63097
  Author: Xiaozhu Meng 
  Date:   2019-05-10 (Fri, 10 May 2019)

  Changed paths:
M common/h/dyn_regs.h
M dyninstAPI/src/BPatch_memoryAccessAdapter.C
M dyninstAPI/src/inst-aarch64.C
M dyninstAPI/src/registerSpace.C

  Log Message:
  ---
  Merge branch 'ARM_effcAddr' into dev-10.1


Compare: 
https://github.com/dyninst/dyninst/compare/fc24608dcbcb%5E...2a84063d7b27
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] dad604: Only demangle names starting with "_Z" according t...

2019-05-07 Thread Xiaozhu Meng
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
  Commit: dad60404e5675e0830e2045cf6c5e192a411bc23
  
https://github.com/dyninst/dyninst/commit/dad60404e5675e0830e2045cf6c5e192a411bc23
  Author: Xiaozhu Meng 
  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


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] ccb8b7: In ProccontrolAPI, adding reading & writing mutate...

2019-05-07 Thread Xiaozhu Meng
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
  Commit: ccb8b7236aff9c757b7cc53daa22969a69813666
  
https://github.com/dyninst/dyninst/commit/ccb8b7236aff9c757b7cc53daa22969a69813666
  Author: Xiaozhu Meng 
  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


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 59fe91: Add --enable-install-elfh when building elfutils f...

2019-05-02 Thread Xiaozhu Meng
  Branch: refs/heads/ARM_effcAddr
  Home:   https://github.com/dyninst/dyninst
  Commit: 59fe914f4c8d548b079ca58ea324af9be8fe6716
  
https://github.com/dyninst/dyninst/commit/59fe914f4c8d548b079ca58ea324af9be8fe6716
  Author: Tim Haines 
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
M cmake/packages.cmake

  Log Message:
  ---
  Add --enable-install-elfh when building elfutils from source (#555)

When building elfutils from source on systems that have old elfutils,
Dyninst couldn't find the correct version of elf.h due to it not
being copied from the elfutils build source directory to the include
directory. In the Feb 15 2019 release of elfutils, this flag was
added to fix this.


  Commit: 052b51da4040c4f1b7b5d91e23d437b5c5af1bd7
  
https://github.com/dyninst/dyninst/commit/052b51da4040c4f1b7b5d91e23d437b5c5af1bd7
  Author: Tim Haines 
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
M cmake/Modules/FindLibElf.cmake

  Log Message:
  ---
  Elfutil version check (#558)

* Add Ubuntu locations
* Search for libelf.so instead of libelf.so.1
This makes the likelihood of find a symlink more probable.
* Add version checking
find_package_handle_standard_args doesn't check versions of shared
libraries, so we need to do it manually.
* Always make the configuration for elfutils noisy


  Commit: b60f5eb067108847dda6f5d405bdfd30a8adc53d
  
https://github.com/dyninst/dyninst/commit/b60f5eb067108847dda6f5d405bdfd30a8adc53d
  Author: Xiaozhu Meng 
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/Relocation/Widgets/CFWidget-ppc.C
M dyninstAPI/src/Relocation/Widgets/PCWidget.C
M dyninstAPI/src/dynProcess.h
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/mapped_object.C
M dyninstAPI/src/pdwinnt.C
M dyninstAPI/src/unix.C
M dyninstAPI/src/vxworks.C
M symtabAPI/src/emitElfStatic-x86.C

  Log Message:
  ---
  Fix tests in PIC mode (#553)

* In dynamic instrumentation for PIE, finding variables's locations needs to 
add the load base of the PIE.
Get rid of wrong, special handling of finding the load base of PIE.
* On x86-64, when emulating call with push & jmp, the push needs to push all 
64-bit of the callee addresses.
* A few fixes for PIC instrumentation on power
1. Fix PC-relative load and store of variables
2. The preamble of PIE uses R12 to set up R2. However,
when generating intra-module calls, Dyninst does not
set up R12 and will call the global entry, causing R2 to
be incorrect. Since there is no need to change R2 for
intra-module calls, we should call the local entry
* Fix function call replacment on power for PIC.
Need to call local entry when doing an intra-module call
* Handle relocation type R_X86_64_REX_GOTPCRELX for binary rewriting of 
statically linked binaries on x86-64
* Fix endianess issues for generating _init and _fini functions on power


  Commit: 2a4bbf763c87a0a6168de2630cf74ba821e6472f
  
https://github.com/dyninst/dyninst/commit/2a4bbf763c87a0a6168de2630cf74ba821e6472f
  Author: Xiaozhu Meng 
  Date:   2019-03-06 (Wed, 06 Mar 2019)

  Changed paths:
M dyninstAPI/h/BPatch_binaryEdit.h
M dyninstAPI/src/BPatch_binaryEdit.C
M proccontrol/src/int_thread_db.C

  Log Message:
  ---
  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


  Commit: d3c46ec48e714fbfc4d9acdd04e5ffde606cdd03
  
https://github.com/dyninst/dyninst/commit/d3c46ec48e714fbfc4d9acdd04e5ffde606cdd03
  Author: Sasha @leela 
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
M instructionAPI/src/InstructionDecoder-aarch64.h
M instructionAPI/src/aarch64_opcode_tables.C

  Log Message:
  ---
  Fix unnecessary multiple calls to buildSysRegMap.

This function should be called only once, but was being called for every
instruction to be decoded. As a result, dyninst would take a long time
to execute. Now to simply run test1_1 on create mode takes 28 seconds,
as opposed to 58 before this fix, and now closer to 20 seconds for x86_64.


  Commit: 48849da93c85e3766117f73c914621db7384c0f7
  
https://github.com/dyninst/dyninst/commit/48849da93c85e3766117f73c914621db7384c0f7
  Author: Xiaozhu Meng 
  Date:   2019-03-12 (Tue, 12 Mar 2019)

  Changed paths:
M common/h/dyn_regs.h
M dyninstAPI/src/BPatch_memoryAc

[DynInst_API:] [dyninst/dyninst] 4224ee: A couple of fixes for ARM effective address calcul...

2019-05-02 Thread Xiaozhu Meng
  Branch: refs/heads/ARM_effcAddr
  Home:   https://github.com/dyninst/dyninst
  Commit: 4224ee0f99bf430486c76712f53617ca37323446
  
https://github.com/dyninst/dyninst/commit/4224ee0f99bf430486c76712f53617ca37323446
  Author: Xiaozhu Meng 
  Date:   2019-05-02 (Thu, 02 May 2019)

  Changed paths:
M dyninstAPI/src/BPatch_memoryAccessAdapter.C
M dyninstAPI/src/inst-aarch64.C
M dyninstAPI/src/registerSpace.C

  Log Message:
  ---
  A couple of fixes for ARM effective address calculation
1. Fix compensating for PC-relative addressing (TODO: binary rewriting for PIE 
and shared libraries)
2. Clean up emitASload


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] bbe1d2: Fix PCWdiget implementation on ARMv8

2019-04-23 Thread Xiaozhu Meng
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
  Commit: bbe1d2a26fa5337c6385434b1d2d630fc4704d45
  
https://github.com/dyninst/dyninst/commit/bbe1d2a26fa5337c6385434b1d2d630fc4704d45
  Author: Xiaozhu Meng 
  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


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 3c3393: Move architecture dependent code in PCWidget.C to ...

2019-04-23 Thread Xiaozhu Meng
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
  Commit: 3c33938ce088dd87316c6e128a6cb010f7e77bf1
  
https://github.com/dyninst/dyninst/commit/3c33938ce088dd87316c6e128a6cb010f7e77bf1
  Author: Xiaozhu Meng 
  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.


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] c6144a: For jump table analysis, control flow edges can be...

2019-04-23 Thread Xiaozhu Meng
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
  Commit: c6144ad78965c02708e67a8d65dabb5ba9c607b6
  
https://github.com/dyninst/dyninst/commit/c6144ad78965c02708e67a8d65dabb5ba9c607b6
  Author: Xiaozhu Meng 
  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.


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


Re: [DynInst_API:] Basic Block reordering / modification using DynInst

2019-04-19 Thread Xiaozhu Meng
Hi Sameer,

Dyninst does not have a public interface for reordering basic blocks
within a function, even though it is capable of doing so. Basic block
level instrumentation is supported.

Thanks,

--Xiaozhu

On Fri, Apr 19, 2019 at 5:08 PM Sameer Railkar  wrote:
>
> Hello,
>
> I am a first year CIS PhD student at UPenn and am using DynInst for a 
> research project.
>
> I glanced over the DynInst API where it shows examples of code instrumentaton 
> (static+dynamic).
>
> My question is: For a C/C++ process/binary, does DynInst support basic block 
> reordering within a function or code modification of some BasicBlock?
>
> Regards,
>
> Sameer
> ___
> Dyninst-api mailing list
> Dyninst-api@cs.wisc.edu
> https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


[DynInst_API:] [dyninst/dyninst] 57b803: 1. Replace springboards prioriy "OffLimits" and "R...

2019-04-18 Thread Xiaozhu Meng
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
  Commit: 57b8030b30c9e6b5ecc5fa0a705316a9a683e38b
  
https://github.com/dyninst/dyninst/commit/57b8030b30c9e6b5ecc5fa0a705316a9a683e38b
  Author: Xiaozhu Meng 
  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.


___
Dyninst-api mailing list
Dyninst-api@cs.wisc.edu
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api


  1   2   3   4   >