[DynInst_API:] [dyninst/dyninst] 17a88b: Add callback declarations for unknown instructions...


Date: Thu, 20 Apr 2023 08:26:55 -0700
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 17a88b: Add callback declarations for unknown instructions...
  Branch: refs/heads/thaines/decode_unknown_instructions
  Home:   https://github.com/dyninst/dyninst
  Commit: 17a88bb8b324b4a8d28bacc9dc317002f9ec4ca8
      https://github.com/dyninst/dyninst/commit/17a88bb8b324b4a8d28bacc9dc317002f9ec4ca8
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

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

  Log Message:
  -----------
  Add callback declarations for unknown instructions in InstructionDecoder


  Commit: b21139a1cd7e36786dc2fbf63f88c577242a06fc
      https://github.com/dyninst/dyninst/commit/b21139a1cd7e36786dc2fbf63f88c577242a06fc
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M instructionAPI/h/InstructionDecoder.h

  Log Message:
  -----------
  Update definition of callback interface

This also makes 'unknown_instruction' inconstructible.


  Commit: f23fc812601eb2b7993f34c0569d654cad877cc1
      https://github.com/dyninst/dyninst/commit/f23fc812601eb2b7993f34c0569d654cad877cc1
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M instructionAPI/src/Instruction.C

  Log Message:
  -----------
  make isValid the same as isLegalInsn

This makes it impossible to make an Instruction object from a failed
decoding process. This only affects x86.


  Commit: 8fbd789771b5188c8aed24d84107f80cd880df6f
      https://github.com/dyninst/dyninst/commit/8fbd789771b5188c8aed24d84107f80cd880df6f
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

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

  Log Message:
  -----------
  Detect illegal instructions sooner in doIA32Decode


  Commit: de5c79f39ae5969d799f2caa6d4313e64dc36b69
      https://github.com/dyninst/dyninst/commit/de5c79f39ae5969d799f2caa6d4313e64dc36b69
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

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

  Log Message:
  -----------
  Don't advance the buffer when an x86 decode fails


  Commit: 06b048a8ceb50559b183d687251adae6ea4d6833
      https://github.com/dyninst/dyninst/commit/06b048a8ceb50559b183d687251adae6ea4d6833
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M instructionAPI/src/InstructionDecoder.C

  Log Message:
  -----------
  Add callback intercept


  Commit: f22d0d699e893719a916535ea8b138f573811850
      https://github.com/dyninst/dyninst/commit/f22d0d699e893719a916535ea8b138f573811850
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

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

  Log Message:
  -----------
  Allow differing sizes between unknown and replacement instructions


  Commit: 6cf38f459638c4f1dce42d63607dcd904c7b7675
      https://github.com/dyninst/dyninst/commit/6cf38f459638c4f1dce42d63607dcd904c7b7675
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M instructionAPI/h/InstructionDecoder.h

  Log Message:
  -----------
  Add construtor for replacement class

This is needed for C++11


  Commit: 1a2cb796bf0fcb175ed52ee9c7facf0b52e54e49
      https://github.com/dyninst/dyninst/commit/1a2cb796bf0fcb175ed52ee9c7facf0b52e54e49
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M instructionAPI/src/Instruction.C

  Log Message:
  -----------
  Update Instruction ctor


  Commit: 1a7ae4fb2065d142b37991ad2a1c1eb16aa57f72
      https://github.com/dyninst/dyninst/commit/1a7ae4fb2065d142b37991ad2a1c1eb16aa57f72
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

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

  Log Message:
  -----------
  Update callback interface

It now directly returns an instruction object. This removes the
possibility of having a mismatched size between the length of the bytes
consumed and the length of the provided instruction. The callback now
takes a second parameter representing the starting address of the byte
sequence.


  Commit: 51ce78630ae6ac1cb5333e3d5472e32f571d2c35
      https://github.com/dyninst/dyninst/commit/51ce78630ae6ac1cb5333e3d5472e32f571d2c35
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M instructionAPI/src/InstructionDecoder.C

  Log Message:
  -----------
  Directly pass the underlying buffer to the callback

This isn't ideal, but is necessary so that the returned Instruction
object doens't refer to a temporary.


  Commit: f1881399dec3f9cd7146ab5bb2b7aae5b3e01bf8
      https://github.com/dyninst/dyninst/commit/f1881399dec3f9cd7146ab5bb2b7aae5b3e01bf8
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

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

  Log Message:
  -----------
  Remove second parameter from callback

It can't be used for debugging and has no use, otherwise.


  Commit: ee208ff7c2ae9c8ddf22e73b2d03a154e4bf3c7f
      https://github.com/dyninst/dyninst/commit/ee208ff7c2ae9c8ddf22e73b2d03a154e4bf3c7f
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M instructionAPI/src/InstructionDecoder.C

  Log Message:
  -----------
  Pass user copy of byte stream

This prevents accidental modification of the real binary.


Compare: https://github.com/dyninst/dyninst/compare/a96b04ca7b17...ee208ff7c2ae
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 17a88b: Add callback declarations for unknown instructions..., Tim Haines <=