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


Date: Fri, 12 Apr 2019 13:36:14 -0700
From: Xiaozhu Meng <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 87af4a: Fix the problem where trap springboards are not wr...
  Branch: refs/heads/pp_springboard
  Home:   https://github.com/dyninst/dyninst
  Commit: 87af4a184b225bd6746992f1521454518ebb372e
      https://github.com/dyninst/dyninst/commit/87af4a184b225bd6746992f1521454518ebb372e
  Author: Xiaozhu Meng <xmeng@xxxxxxxxxxx>
  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 <xmeng@xxxxxxxxxxx>
  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 <xmeng@xxxxxxxxxxx>
  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 <xmeng@xxxxxxxxxxx>
  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 <xmeng@xxxxxxxxxxx>
  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 <welton@xxxxxxxxxxx>
  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 <xmeng@xxxxxxxxxxx>
  Date:   2019-04-12 (Fri, 12 Apr 2019)

  Changed paths:
    M parseAPI/src/Function.C

  Log Message:
  -----------
  Fix compilation error introduced during applying patches


Compare: https://github.com/dyninst/dyninst/compare/87af4a184b22%5E...024018d12027
[← Prev in Thread] Current Thread [Next in Thread→]