[DynInst_API:] [dyninst/dyninst] cee6ba: New walker to walk out of Instrimentation Frames F...


Date: Fri, 05 Oct 2018 15:53:07 -0700
From: Sasha Nicolas <sasha@xxxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] cee6ba: New walker to walk out of Instrimentation Frames F...
  Branch: refs/heads/arm64/feature/relocation
  Home:   https://github.com/dyninst/dyninst
  Commit: cee6ba5366037dd687ba573f1b01c8aba5c29109
      https://github.com/dyninst/dyninst/commit/cee6ba5366037dd687ba573f1b01c8aba5c29109
  Author: Benjamin Welton <welton@xxxxxxxxxxx>
  Date:   2018-04-12 (Thu, 12 Apr 2018)

  Changed paths:
    M stackwalk/h/framestepper.h
    M stackwalk/src/framestepper.C
    M stackwalk/src/linuxbsd-x86-swk.C
    M stackwalk/src/sw.h

  Log Message:
  -----------
  New walker to walk out of Instrimentation Frames FP

This patch contains a new walker that can walk out of inst frames in first party stackwalking mode.

For this to work, the emitter fixes located in pull request #451 must be applied. The walker itself creates
a Stackwalker frame based on the information saved by the emitter.


  Commit: a58103fb2c7c000c87a2c0ce9b1118061067dfde
      https://github.com/dyninst/dyninst/commit/a58103fb2c7c000c87a2c0ce9b1118061067dfde
  Author: Benjamin Welton <welton@xxxxxxxxxxx>
  Date:   2018-05-01 (Tue, 01 May 2018)

  Changed paths:
    M dyninstAPI/src/Relocation/Widgets/InstWidget.C

  Log Message:
  -----------
  Fix for crashing on relocating at unistrumentable points

This fix is to address issue #455. When an unistrimentable point is selected for instrimenation
the behaviour Dyninst will now exhibit is the following:

1. InsertSnippet will return NULL if not in an insertion set and an illegal when parameter is used

2. If in an insertion set, InsertSnippet will return an object to the instrimentation. However when the set
   is closed the insertion of that point will fail. It will either fail and continue to the next point (if
   the insertion set closure is set to continue past errors) or roll back all prior insertions.
.


  Commit: 0c3eb945180d2643858a4b303343356a10f07075
      https://github.com/dyninst/dyninst/commit/0c3eb945180d2643858a4b303343356a10f07075
  Author: Sasha Nicolas <sasha@xxxxxxxxxxx>
  Date:   2018-09-24 (Mon, 24 Sep 2018)

  Changed paths:
    M dwarf/h/dwarfFrameParser.h
    M dwarf/src/dwarfFrameParser.C
    M dwarf/src/dwarfHandle.C
    M dwarf/src/dwarfResult.C
    M stackwalk/src/dbginfo-stepper.C
    M symtabAPI/src/Function.C
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Separate debug info file issue fixed.
A DwarfFrameParser object was not being created in the case of separate
debug info file, because libdw does not create Dwarf handles to files
that contain only .eh_frame section without .debug_*. This was causing
AST variable node to assert because the local variables did not get
location list, since .eh_frame reference was never saved for lookup.
The solution was to create a DwarfFrameParser saving not only a possible
Dwarf handle but also an Elf reference, since the .eh_frame section will
be in the main stripped binary, while the Dwarf handle will point to
the separate debug file.


  Commit: 93e7cd171f00ef23768b7c16c6f50930d51295ec
      https://github.com/dyninst/dyninst/commit/93e7cd171f00ef23768b7c16c6f50930d51295ec
  Author: Sasha @poman <sasha@xxxxxxxxxxx>
  Date:   2018-09-28 (Fri, 28 Sep 2018)

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

  Log Message:
  -----------
  Implementing BPatch_xor for POWER.


  Commit: d830b0645852727ab59909d110ebf24c6a29056b
      https://github.com/dyninst/dyninst/commit/d830b0645852727ab59909d110ebf24c6a29056b
  Author: Benjamin Welton <welton@xxxxxxxxxxx>
  Date:   2018-10-02 (Tue, 02 Oct 2018)

  Changed paths:
    M dyninstAPI/src/Relocation/Widgets/InstWidget.C

  Log Message:
  -----------
  Merge pull request #460 from bwelton/inst_fix

Fix for crashing on relocating at unistrumentable points. Fix checks whether a parameter is NULL or not, if it is NULL it does not perform the instrumentation.


  Commit: 69d17b17f427e39f84317cffdf095aa5c0e98f1e
      https://github.com/dyninst/dyninst/commit/69d17b17f427e39f84317cffdf095aa5c0e98f1e
  Author: Benjamin Welton <welton@xxxxxxxxxxx>
  Date:   2018-10-02 (Tue, 02 Oct 2018)

  Changed paths:
    M stackwalk/h/framestepper.h
    M stackwalk/src/framestepper.C
    M stackwalk/src/linuxbsd-x86-swk.C
    M stackwalk/src/sw.h

  Log Message:
  -----------
  Merge pull request #452 from bwelton/sw_instFrameWalker

New walker to walk out of Instrumentation Frames first party. Build and test suite passes (x64, ubuntu)


  Commit: cc769c889488c0ff5787561563fefa9df4ac0284
      https://github.com/dyninst/dyninst/commit/cc769c889488c0ff5787561563fefa9df4ac0284
  Author: Benjamin Welton <welton@xxxxxxxxxxx>
  Date:   2018-10-03 (Wed, 03 Oct 2018)

  Changed paths:
    M stackwalk/h/framestepper.h
    M stackwalk/src/framestepper.C
    M stackwalk/src/linuxbsd-x86-swk.C
    M stackwalk/src/sw.h

  Log Message:
  -----------
  New walker to walk out of Instrimentation Frames FP

This patch contains a new walker that can walk out of inst frames in first party stackwalking mode.

For this to work, the emitter fixes located in pull request #451 must be applied. The walker itself creates
a Stackwalker frame based on the information saved by the emitter.


  Commit: 5f5358637619cf6b964cffc12e6d76f673ec5be6
      https://github.com/dyninst/dyninst/commit/5f5358637619cf6b964cffc12e6d76f673ec5be6
  Author: Benjamin Welton <welton@xxxxxxxxxxx>
  Date:   2018-10-03 (Wed, 03 Oct 2018)

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

  Log Message:
  -----------
  Modification to x86 emitter to support SW out of inst frames.

This patch contains changes to the emitter to support first party stackwalking out of inst's frames. For inst frames to be walkable, instrimentation frames must be enabled.

The following changes were made to support this:

- Insertion of the previous SP into the stack at a known location (2 slots above the FP).
- Insertion of a special word into the stack such that stackwalker can easily identify that this frame is an inst frame (and to select the correct walker). BEEFDEAD is located at +1 slot away from FP.
- The poping of these values from the stack at frame teardown.
- Fixes to the emitter to use scratch registers where hard coded ones were present before.

Total performance impact of this patch is an extra 5 instruction. 3 on frame creation, 2 on destruction.


  Commit: bc9c02d877bfb5a4d0e26d903d57d3cf4be77989
      https://github.com/dyninst/dyninst/commit/bc9c02d877bfb5a4d0e26d903d57d3cf4be77989
  Author: Benjamin Welton <welton@xxxxxxxxxxx>
  Date:   2018-10-03 (Wed, 03 Oct 2018)

  Log Message:
  -----------
  Merge branch 'master' of github.com:dyninst/dyninst


  Commit: 0f43b5e415b68b33146c06b719eefe7ae91a75ca
      https://github.com/dyninst/dyninst/commit/0f43b5e415b68b33146c06b719eefe7ae91a75ca
  Author: Benjamin Welton <welton@xxxxxxxxxxx>
  Date:   2018-10-04 (Thu, 04 Oct 2018)

  Changed paths:
    M stackwalk/src/framestepper.C

  Log Message:
  -----------
  Minor fixes to FP Stack Unwinding through Inst Frames

Minor fixes to stack unwinding through instrimentation (applies to First Party stackwalker only).

Added additional comments to the walker to detail how it functions more clearly and what it is looking for to
accept a stack frame.


  Commit: 05cc087cf5adb3c5e96f47f6d47c75f7182917e1
      https://github.com/dyninst/dyninst/commit/05cc087cf5adb3c5e96f47f6d47c75f7182917e1
  Author: Sasha Nicolas <sasha@xxxxxxxxxxx>
  Date:   2018-10-05 (Fri, 05 Oct 2018)

  Changed paths:
    M common/src/arch-power.h
    M dwarf/h/dwarfFrameParser.h
    M dwarf/src/dwarfFrameParser.C
    M dwarf/src/dwarfHandle.C
    M dwarf/src/dwarfResult.C
    M dyninstAPI/src/Relocation/Widgets/InstWidget.C
    M dyninstAPI/src/emit-x86.C
    M dyninstAPI/src/inst-power.C
    M stackwalk/h/framestepper.h
    M stackwalk/src/dbginfo-stepper.C
    M stackwalk/src/framestepper.C
    M stackwalk/src/linuxbsd-x86-swk.C
    M stackwalk/src/sw.h
    M symtabAPI/src/Function.C
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Merge branch 'master' into arm64/feature/relocation


Compare: https://github.com/dyninst/dyninst/compare/9f1bff5cd724...05cc087cf5ad
      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.
[← Prev in Thread] Current Thread [Next in Thread→]