dyninst.git
4 years agomodified for swk
Steve [Sat, 30 May 2015 03:40:41 +0000 (22:40 -0500)]
modified for swk

4 years agochange struct to classes
SteveXiSong [Fri, 22 May 2015 19:32:29 +0000 (14:32 -0500)]
change struct to classes

4 years agofixes some arm compile issues on x86
SteveXiSong [Fri, 22 May 2015 19:01:04 +0000 (14:01 -0500)]
fixes some arm compile issues on x86

4 years agopull from feta
Steve [Fri, 22 May 2015 16:20:42 +0000 (11:20 -0500)]
pull from feta

4 years agorebased and tests passes
Steve [Fri, 22 May 2015 16:14:04 +0000 (11:14 -0500)]
rebased and tests passes

4 years agoTemporary aarch64 fixes
Steve [Thu, 21 May 2015 22:52:08 +0000 (17:52 -0500)]
Temporary aarch64 fixes

4 years agoproccontrol: all tests passed. Solution II is used to solve arm kernel bug.
Steve [Thu, 21 May 2015 19:22:49 +0000 (14:22 -0500)]
proccontrol: all tests passed. Solution II is used to solve arm kernel bug.

4 years agoadded branch reg for emulated ss
Steve [Mon, 4 May 2015 18:54:59 +0000 (13:54 -0500)]
added branch reg for emulated ss

4 years agoInitial cmake fixes
Bill Williams [Tue, 10 Mar 2015 18:27:00 +0000 (13:27 -0500)]
Initial cmake fixes

4 years agoproccontrol: all tests passed. Solution II is used to solve arm kernel bug.
Steve [Thu, 21 May 2015 19:22:49 +0000 (14:22 -0500)]
proccontrol: all tests passed. Solution II is used to solve arm kernel bug.

4 years agosolved proccontrol mt bug by simple solution.
Steve [Fri, 15 May 2015 16:14:05 +0000 (11:14 -0500)]
solved proccontrol mt bug by simple solution.

4 years agoadded branch reg for emulated ss
Steve [Mon, 4 May 2015 18:54:59 +0000 (13:54 -0500)]
added branch reg for emulated ss

4 years agopc works in sp, mp mode, but mt mode failed
Steve [Mon, 27 Apr 2015 22:01:15 +0000 (17:01 -0500)]
pc works in sp, mp mode, but mt mode failed

4 years ago new file: .syntastic_cpp_config
Steve [Mon, 6 Apr 2015 20:50:20 +0000 (15:50 -0500)]
new file:   .syntastic_cpp_config
new file:   common/h/Display
new file:   common/h/FileType
new file:   common/h/Initial
new file:   common/h/Others
modified:   common/h/dyn_regs.h
modified:   common/src/arch-aarch64.C
modified:   common/src/arch-aarch64.h
modified:   common/src/dyn_regs.C
modified:   dyninstAPI/src/RegisterConversion-aarch64.C
modified:   dyninstAPI/src/codegen-aarch64.C
modified:   dyninstAPI/src/debug.C
modified:   dyninstAPI/src/registerSpace.h
modified:   elf/src/SystemTap.C
new file:   proccontrol/.syntastic_cpp_config
modified:   proccontrol/CMakeLists.txt
modified:   proccontrol/h/PCErrors.h
new file:   proccontrol/src/Display
new file:   proccontrol/src/FileType
new file:   proccontrol/src/Initial
new file:   proccontrol/src/Others
modified:   proccontrol/src/arm_process.C
modified:   proccontrol/src/arm_process.h
modified:   proccontrol/src/linux.C
modified:   proccontrol/src/loadLibrary/codegen-aarch64.C
modified:   proccontrol/src/mmapalloc.C
modified:   proccontrol/src/pcerrors.C
modified:   proccontrol/src/process.C
modified:   proccontrol/src/snippets.h
modified:   proccontrol/src/unix.C
modified:   stackwalk/src/aarch64-swk.C
new file:   syscalls/unistd-by-platform/Linux/Arch_aarch64/unistd.h

4 years ago modified: common/CMakeLists.txt
Steve [Fri, 20 Mar 2015 20:06:15 +0000 (15:06 -0500)]
modified:   common/CMakeLists.txt
modified:   common/h/dyn_regs.h
modified:   common/src/arch-aarch64.C
modified:   common/src/arch-aarch64.h
modified:   common/src/arch.h
modified:   common/src/dyn_regs.C
modified:   dataflowAPI/src/ABI.C
modified:   dataflowAPI/src/RegisterMap.C
modified:   dyninstAPI/CMakeLists.txt
modified:   dyninstAPI/src/BPatch_snippet.C
new file:   dyninstAPI/src/RegisterConversion-aarch64.C
new file:   dyninstAPI/src/Relocation/Widgets/CFWidget-aarch64.C
modified:   dyninstAPI/src/Relocation/Widgets/CFWidget.h
modified:   dyninstAPI/src/arch-forward-decl.h
modified:   dyninstAPI/src/ast.C
modified:   dyninstAPI/src/binaryEdit.C
new file:   dyninstAPI/src/codegen-aarch64.C
new file:   dyninstAPI/src/codegen-aarch64.h
modified:   dyninstAPI/src/codegen.h
new file:   dyninstAPI/src/emit-aarch64.h
new file:   dyninstAPI/src/inst-aarch64.C
new file:   dyninstAPI/src/inst-aarch64.h
modified:   dyninstAPI/src/legacy-instruction.h
new file:   dyninstAPI/src/linux-aarch64.C
new file:   dyninstAPI/src/linux-aarch64.h
modified:   dyninstAPI/src/linux.h
modified:   dyninstAPI/src/mapped_object.C
new file:   dyninstAPI/src/parse-aarch64.C
modified:   dyninstAPI/src/registerSpace.C
modified:   dyninstAPI/src/registerSpace.h
new file:   dyninstAPI/src/stackwalk-aarch64.C
modified:   dyninstAPI/src/vxworks.h
modified:   dyninstAPI_RT/CMakeLists.txt
modified:   dyninstAPI_RT/src/RTcommon.c
modified:   dyninstAPI_RT/src/RTlinux.c
new file:   dyninstAPI_RT/src/RTstatic_ctors_dtors-aarch64.c
new file:   dyninstAPI_RT/src/RTthread-aarch64-asm.S
new file:   dyninstAPI_RT/src/RTthread-aarch64-asm.s
new file:   dyninstAPI_RT/src/RTthread-aarch64.c
modified:   parseAPI/CMakeLists.txt
modified:   parseAPI/h/CFGModifier.h
modified:   parseAPI/src/IA_IAPI.C
modified:   parseAPI/src/IA_IAPI.h
new file:   parseAPI/src/IA_aarch64.C
new file:   parseAPI/src/IA_aarch64.h
new file:   parseAPI/src/IA_aarch64Details.C
new file:   parseAPI/src/IA_aarch64Details.h
modified:   parseAPI/src/IA_platformDetailsFactory.C
new file:   parseAPI/src/InstructionSource-aarch64.C
modified:   parseAPI/src/SymLiteCodeSource.C
modified:   parseAPI/src/SymtabCodeSource.C
modified:   proccontrol/src/arm_process.C
modified:   stackwalk/CMakeLists.txt
new file:   stackwalk/src/aarch64-swk.C
new file:   stackwalk/src/linux-aarch64-swk.C

4 years ago modified: cmake/cap_arch_def.cmake
Steve [Mon, 16 Mar 2015 16:32:28 +0000 (11:32 -0500)]
modified:   cmake/cap_arch_def.cmake
modified:   common/h/dyn_regs.h
new file:   common/src/arch-aarch64.C
new file:   common/src/arch-aarch64.h
modified:   common/src/arch.h
modified:   common/src/dyn_regs.C
modified:   dwarf/src/dwarfHandle.C
modified:   proccontrol/CMakeLists.txt
new file:   proccontrol/src/arm_process.C
new file:   proccontrol/src/arm_process.h
modified:   proccontrol/src/linux.C
modified:   proccontrol/src/linux.h
new file:   proccontrol/src/loadLibrary/codegen-aarch64.C
modified:   symtabAPI/CMakeLists.txt
modified:   symtabAPI/src/emitElfStatic-aarch64.C
modified:   symtabAPI/src/relocationEntry-elf-aarch64.C

4 years ago modified: symtabAPI/CMakeLists.txt
Steve [Thu, 12 Mar 2015 16:12:09 +0000 (11:12 -0500)]
modified:   symtabAPI/CMakeLists.txt
new file:   symtabAPI/src/emitElfStatic-aarch64.C
modified:   symtabAPI/src/emitElfStatic.C
new file:   symtabAPI/src/relocationEntry-elf-aarch64.C

4 years agoInitial cmake fixes
Bill Williams [Tue, 10 Mar 2015 18:27:00 +0000 (13:27 -0500)]
Initial cmake fixes

4 years agopatch 2
SteveXiSong [Fri, 22 May 2015 02:00:23 +0000 (21:00 -0500)]
patch 2

4 years agoTesting stack mods build fix
SteveXiSong [Thu, 21 May 2015 22:40:54 +0000 (17:40 -0500)]
Testing stack mods build fix

4 years agoproccontrol: all tests passed. Solution II is used to solve arm kernel bug.
Steve [Thu, 21 May 2015 19:22:49 +0000 (14:22 -0500)]
proccontrol: all tests passed. Solution II is used to solve arm kernel bug.

4 years agoHandle complex LEA instructions in stack analysis.
Emily Gember-Jacobson [Fri, 8 May 2015 20:03:21 +0000 (15:03 -0500)]
Handle complex LEA instructions in stack analysis.

Existing stack analysis only handled LEA instructions with a single source
register. This ignores LEA instructions where the source is an SIB
expression. A new transfer func, sibFunc, has been added, and the apply()
and accumulate() functions have been updated to properly handle this new
transfer function.

4 years agoUpdate StackAnalysis::handleMov to handle non register-register moves.
Emily Gember-Jacobson [Fri, 8 May 2015 19:34:23 +0000 (14:34 -0500)]
Update StackAnalysis::handleMov to handle non register-register moves.

4 years agoUpdated StackAnalysis::handleAddSub to also operate on non-SP registers.
Emily Gember-Jacobson [Fri, 8 May 2015 19:32:09 +0000 (14:32 -0500)]
Updated StackAnalysis::handleAddSub to also operate on non-SP registers.

4 years agoRedefine StackAnalysis::handleDefault to round a register to TOP or BOTTOM,
Emily Gember-Jacobson [Fri, 8 May 2015 19:26:54 +0000 (14:26 -0500)]
Redefine StackAnalysis::handleDefault to round a register to TOP or BOTTOM,
instead of always setting to BOTTOM.

4 years agoModify StackAnalysis::findDefinedHeights to include registers with a height of BOTTOM.
Emily Gember-Jacobson [Fri, 8 May 2015 19:24:46 +0000 (14:24 -0500)]
Modify StackAnalysis::findDefinedHeights to include registers with a height of BOTTOM.

4 years agoIn stack analysis, add handlers for sign- and zero-extend instructions.
Emily Gember-Jacobson [Fri, 8 May 2015 19:23:43 +0000 (14:23 -0500)]
In stack analysis, add handlers for sign- and zero-extend instructions.

4 years agoExtend stack analysis transfer functions to handle targets that should be
Emily Gember-Jacobson [Fri, 8 May 2015 19:19:45 +0000 (14:19 -0500)]
Extend stack analysis transfer functions to handle targets that should be
"rounded" to TOP or BOTTOM.

This annotate transfer functions that have the following characteristic:
if target is TOP, keep as TOP
else, target must be set to BOTTOM
E.g., sign-extending a register:
  if the register had an uninitialized stack height (TOP),
    the sign-extension has no effect
  if the register had a valid or notunique (BOTTOM) stack height,
    the sign-extension must result in a BOTTOM stack height

4 years agoRedefine delta and abs to be of type long in StackAnalysis::TransferFunc
Emily Gember-Jacobson [Fri, 8 May 2015 19:03:03 +0000 (14:03 -0500)]
Redefine delta and abs to be of type long in StackAnalysis::TransferFunc

4 years agoBug fixes for arithmetic operations for StackAnalysis::Height
Emily Gember-Jacobson [Fri, 8 May 2015 18:45:45 +0000 (13:45 -0500)]
Bug fixes for arithmetic operations for StackAnalysis::Height

Previously, most arithmetic involving TOP returned TOP. This is not
correct, and the operators have been updated accordingly.

4 years agoAdd += operator for StackAnalysis::Height
Emily Gember-Jacobson [Fri, 8 May 2015 18:35:52 +0000 (13:35 -0500)]
Add += operator for StackAnalysis::Height

4 years agoAdd sensitivity analysis for stack modifications.
Emily Gember-Jacobson [Fri, 8 May 2015 18:33:05 +0000 (13:33 -0500)]
Add sensitivity analysis for stack modifications.

This sensitivity analysis determines which instructions access
relocated stack memory or stack memory shifted due to modifications;
these instructions are updated during relocation to access the new
stack locations (via a new StackModWidget).

4 years agoAdded insnCodeGen::modifyDisp, which modifies the displacement encoded in an instruction.
Emily Gember-Jacobson [Fri, 8 May 2015 18:11:51 +0000 (13:11 -0500)]
Added insnCodeGen::modifyDisp, which modifies the displacement encoded in an instruction.

4 years agoImplement stack modifications.
Emily Gember-Jacobson [Fri, 8 May 2015 17:37:21 +0000 (12:37 -0500)]
Implement stack modifications.

Stack modifications allow users to modify the stack frame layout by
inserting, removing, or moving stack space. Stack modifications are
based on the abstraction of stack locations, not the contents of
these locations. Further, we provide the ability to insert
stack canaries or to randomize the DWARF-provided local variables
in a stack frame.

4 years agoDefine >, <=, >=, and - operators for StackAnalysis::Height
Emily Gember-Jacobson [Fri, 8 May 2015 17:42:01 +0000 (12:42 -0500)]
Define >, <=, >=, and - operators for StackAnalysis::Height

4 years agoAdd several fortran functions to list of known non-returning functions
Emily Gember-Jacobson [Fri, 8 May 2015 15:55:35 +0000 (10:55 -0500)]
Add several fortran functions to list of known non-returning functions

4 years agoRecord the frameOffset as an absolute offset in VariableLocation (in addition to...
Emily Gember-Jacobson [Fri, 8 May 2015 15:47:55 +0000 (10:47 -0500)]
Record the frameOffset as an absolute offset in VariableLocation (in addition to the existing relative offset)

4 years agoAdd flag to codeGen class to generate instrumentation code without baseTramp saves...
Emily Gember-Jacobson [Fri, 8 May 2015 15:43:51 +0000 (10:43 -0500)]
Add flag to codeGen class to generate instrumentation code without baseTramp saves and restores.

4 years agoMove emitLEA into the Emitter class
Emily Gember-Jacobson [Fri, 8 May 2015 15:32:31 +0000 (10:32 -0500)]
Move emitLEA into the Emitter class

4 years agoAdd emit functions to handle various operations with segment registers
Emily Gember-Jacobson [Fri, 8 May 2015 15:17:23 +0000 (10:17 -0500)]
Add emit functions to handle various operations with segment registers

4 years agoAdd support for the x86::gs and x86_64::fs registers
Emily Gember-Jacobson [Fri, 8 May 2015 14:57:21 +0000 (09:57 -0500)]
Add support for the x86::gs and x86_64::fs registers

4 years agoAdd reverse iterators and an updateValue function to IntervalTree.
Emily Gember-Jacobson [Fri, 8 May 2015 14:29:03 +0000 (09:29 -0500)]
Add reverse iterators and an updateValue function to IntervalTree.

4 years agosolved proccontrol mt bug by simple solution.
Steve [Fri, 15 May 2015 16:14:05 +0000 (11:14 -0500)]
solved proccontrol mt bug by simple solution.

4 years agoInstall dataflowAPI public headers.
Emily Gember-Jacobson [Mon, 11 May 2015 20:25:43 +0000 (15:25 -0500)]
Install dataflowAPI public headers.

4 years agoCMake fixes for building/installing components separately.
Bill Williams [Wed, 15 Apr 2015 15:49:19 +0000 (10:49 -0500)]
CMake fixes for building/installing components separately.

4 years agoadded branch reg for emulated ss
Steve [Mon, 4 May 2015 18:54:59 +0000 (13:54 -0500)]
added branch reg for emulated ss

4 years agopc works in sp, mp mode, but mt mode failed
Steve [Mon, 27 Apr 2015 22:01:15 +0000 (17:01 -0500)]
pc works in sp, mp mode, but mt mode failed

4 years ago new file: .syntastic_cpp_config
Steve [Mon, 6 Apr 2015 20:50:20 +0000 (15:50 -0500)]
new file:   .syntastic_cpp_config
new file:   common/h/Display
new file:   common/h/FileType
new file:   common/h/Initial
new file:   common/h/Others
modified:   common/h/dyn_regs.h
modified:   common/src/arch-aarch64.C
modified:   common/src/arch-aarch64.h
modified:   common/src/dyn_regs.C
modified:   dyninstAPI/src/RegisterConversion-aarch64.C
modified:   dyninstAPI/src/codegen-aarch64.C
modified:   dyninstAPI/src/debug.C
modified:   dyninstAPI/src/registerSpace.h
modified:   elf/src/SystemTap.C
new file:   proccontrol/.syntastic_cpp_config
modified:   proccontrol/CMakeLists.txt
modified:   proccontrol/h/PCErrors.h
new file:   proccontrol/src/Display
new file:   proccontrol/src/FileType
new file:   proccontrol/src/Initial
new file:   proccontrol/src/Others
modified:   proccontrol/src/arm_process.C
modified:   proccontrol/src/arm_process.h
modified:   proccontrol/src/linux.C
modified:   proccontrol/src/loadLibrary/codegen-aarch64.C
modified:   proccontrol/src/mmapalloc.C
modified:   proccontrol/src/pcerrors.C
modified:   proccontrol/src/process.C
modified:   proccontrol/src/snippets.h
modified:   proccontrol/src/unix.C
modified:   stackwalk/src/aarch64-swk.C
new file:   syscalls/unistd-by-platform/Linux/Arch_aarch64/unistd.h

4 years agoInstructionAPI Integer Multiply
Alex Morris [Wed, 25 Mar 2015 19:14:57 +0000 (14:14 -0500)]
InstructionAPI Integer Multiply
This commit fixes the handling of AL/AX in 8-bit unsigned multiplication.

4 years agoDivision and Multiplication Semantics
Alex Morris [Tue, 24 Mar 2015 21:12:55 +0000 (16:12 -0500)]
Division and Multiplication Semantics
Removes implicit operands from being passed to ROSE semantics for
IA32 div, idiv, imul, and mul instructions.

4 years agoSlicing optimizations
Alex Morris [Tue, 24 Mar 2015 17:43:01 +0000 (12:43 -0500)]
Slicing optimizations
This commit re-incorporates the caching mechanism from the older slicer in
order to improve performance. The slicer additionally checks for cycles
in the data dependence graph, and collects cached definitions to create
complete and correct slices. This commit also fixes the issue where no
nodes are marked as entry or exit nodes.

4 years agoInitially label call edges as CALL, not NOEDGE
Emily Gember-Jacobson [Mon, 23 Mar 2015 20:09:01 +0000 (15:09 -0500)]
Initially label call edges as CALL, not NOEDGE

4 years ago modified: common/CMakeLists.txt
Steve [Fri, 20 Mar 2015 20:06:15 +0000 (15:06 -0500)]
modified:   common/CMakeLists.txt
modified:   common/h/dyn_regs.h
modified:   common/src/arch-aarch64.C
modified:   common/src/arch-aarch64.h
modified:   common/src/arch.h
modified:   common/src/dyn_regs.C
modified:   dataflowAPI/src/ABI.C
modified:   dataflowAPI/src/RegisterMap.C
modified:   dyninstAPI/CMakeLists.txt
modified:   dyninstAPI/src/BPatch_snippet.C
new file:   dyninstAPI/src/RegisterConversion-aarch64.C
new file:   dyninstAPI/src/Relocation/Widgets/CFWidget-aarch64.C
modified:   dyninstAPI/src/Relocation/Widgets/CFWidget.h
modified:   dyninstAPI/src/arch-forward-decl.h
modified:   dyninstAPI/src/ast.C
modified:   dyninstAPI/src/binaryEdit.C
new file:   dyninstAPI/src/codegen-aarch64.C
new file:   dyninstAPI/src/codegen-aarch64.h
modified:   dyninstAPI/src/codegen.h
new file:   dyninstAPI/src/emit-aarch64.h
new file:   dyninstAPI/src/inst-aarch64.C
new file:   dyninstAPI/src/inst-aarch64.h
modified:   dyninstAPI/src/legacy-instruction.h
new file:   dyninstAPI/src/linux-aarch64.C
new file:   dyninstAPI/src/linux-aarch64.h
modified:   dyninstAPI/src/linux.h
modified:   dyninstAPI/src/mapped_object.C
new file:   dyninstAPI/src/parse-aarch64.C
modified:   dyninstAPI/src/registerSpace.C
modified:   dyninstAPI/src/registerSpace.h
new file:   dyninstAPI/src/stackwalk-aarch64.C
modified:   dyninstAPI/src/vxworks.h
modified:   dyninstAPI_RT/CMakeLists.txt
modified:   dyninstAPI_RT/src/RTcommon.c
modified:   dyninstAPI_RT/src/RTlinux.c
new file:   dyninstAPI_RT/src/RTstatic_ctors_dtors-aarch64.c
new file:   dyninstAPI_RT/src/RTthread-aarch64-asm.S
new file:   dyninstAPI_RT/src/RTthread-aarch64-asm.s
new file:   dyninstAPI_RT/src/RTthread-aarch64.c
modified:   parseAPI/CMakeLists.txt
modified:   parseAPI/h/CFGModifier.h
modified:   parseAPI/src/IA_IAPI.C
modified:   parseAPI/src/IA_IAPI.h
new file:   parseAPI/src/IA_aarch64.C
new file:   parseAPI/src/IA_aarch64.h
new file:   parseAPI/src/IA_aarch64Details.C
new file:   parseAPI/src/IA_aarch64Details.h
modified:   parseAPI/src/IA_platformDetailsFactory.C
new file:   parseAPI/src/InstructionSource-aarch64.C
modified:   parseAPI/src/SymLiteCodeSource.C
modified:   parseAPI/src/SymtabCodeSource.C
modified:   proccontrol/src/arm_process.C
modified:   stackwalk/CMakeLists.txt
new file:   stackwalk/src/aarch64-swk.C
new file:   stackwalk/src/linux-aarch64-swk.C

4 years agoRemove unnecessary code in ProcessCFInsn
Emily Gember-Jacobson [Fri, 20 Mar 2015 19:22:02 +0000 (14:22 -0500)]
Remove unnecessary code in ProcessCFInsn

4 years agoCall instructions are not tailcalls.
Emily Gember-Jacobson [Thu, 19 Mar 2015 18:44:42 +0000 (13:44 -0500)]
Call instructions are not tailcalls.

4 years agoClean compiler warnings
Matthew LeGendre [Wed, 18 Mar 2015 21:51:42 +0000 (14:51 -0700)]
Clean compiler warnings

4 years agoClean stderr printfs out of libsymtabAPI
Matthew LeGendre [Wed, 18 Mar 2015 18:49:15 +0000 (11:49 -0700)]
Clean stderr printfs out of libsymtabAPI

4 years agoTailcall fix: if target block is known but is not func entry, not tail call
Emily Gember-Jacobson [Thu, 5 Mar 2015 16:55:58 +0000 (10:55 -0600)]
Tailcall fix: if target block is known but is not func entry, not tail call

4 years agoVarious slicing fixes.
Alex Morris [Tue, 17 Mar 2015 02:51:18 +0000 (21:51 -0500)]
Various slicing fixes.
This commit fixes recursion in the backwards case with multiple
assignments of interest from the same instruction. The mechanism
of using control-flow edges to control recursion and access cached
edges has been removed. Also, duplicate nodes are not created for
initial assignments that are in loops, and non-processor flag nodes
without outgoing edges are no longer erroneously deleted.

4 years ago modified: cmake/cap_arch_def.cmake
Steve [Mon, 16 Mar 2015 16:32:28 +0000 (11:32 -0500)]
modified:   cmake/cap_arch_def.cmake
modified:   common/h/dyn_regs.h
new file:   common/src/arch-aarch64.C
new file:   common/src/arch-aarch64.h
modified:   common/src/arch.h
modified:   common/src/dyn_regs.C
modified:   dwarf/src/dwarfHandle.C
modified:   proccontrol/CMakeLists.txt
new file:   proccontrol/src/arm_process.C
new file:   proccontrol/src/arm_process.h
modified:   proccontrol/src/linux.C
modified:   proccontrol/src/linux.h
new file:   proccontrol/src/loadLibrary/codegen-aarch64.C
modified:   symtabAPI/CMakeLists.txt
modified:   symtabAPI/src/emitElfStatic-aarch64.C
modified:   symtabAPI/src/relocationEntry-elf-aarch64.C

4 years ago modified: symtabAPI/CMakeLists.txt
Steve [Thu, 12 Mar 2015 16:12:09 +0000 (11:12 -0500)]
modified:   symtabAPI/CMakeLists.txt
new file:   symtabAPI/src/emitElfStatic-aarch64.C
modified:   symtabAPI/src/emitElfStatic.C
new file:   symtabAPI/src/relocationEntry-elf-aarch64.C

4 years agoHandle missing DW_FRAME_UNDEFINED_VAL case correctly.
Bill Williams [Wed, 4 Mar 2015 19:30:56 +0000 (13:30 -0600)]
Handle missing DW_FRAME_UNDEFINED_VAL case correctly.

4 years agoDead thread fix.
Bill Williams [Thu, 26 Feb 2015 20:15:33 +0000 (14:15 -0600)]
Dead thread fix.

4 years agoInitial cmake fixes
Bill Williams [Tue, 10 Mar 2015 18:27:00 +0000 (13:27 -0500)]
Initial cmake fixes

4 years agoHandle missing DW_FRAME_UNDEFINED_VAL case correctly.
Bill Williams [Wed, 4 Mar 2015 19:30:56 +0000 (13:30 -0600)]
Handle missing DW_FRAME_UNDEFINED_VAL case correctly.

4 years agoDead thread fix.
Bill Williams [Thu, 26 Feb 2015 20:15:33 +0000 (14:15 -0600)]
Dead thread fix.

4 years agoFix register operand size issue
Xiaozhu Meng [Mon, 23 Feb 2015 03:17:22 +0000 (21:17 -0600)]
Fix register operand size issue

4 years agoAdd error checking to verify that libraries passed to thread local functions belong...
Matthew LeGendre [Fri, 20 Feb 2015 19:45:44 +0000 (11:45 -0800)]
Add error checking to verify that libraries passed to thread local functions belong to the appropriate process.

4 years agoIn ProcControlAPI int_library objects, add an up pointer to track which mem_state...
Matthew LeGendre [Fri, 20 Feb 2015 19:44:14 +0000 (11:44 -0800)]
In ProcControlAPI int_library objects, add an up pointer to track which mem_state they belong to.

4 years agoForce frame pointers in stackwalker, no matter the optimization level
Bill Williams [Thu, 12 Feb 2015 18:47:34 +0000 (12:47 -0600)]
Force frame pointers in stackwalker, no matter the optimization level

4 years agoFix missing parameter name from inline wrapper
Bill Williams [Thu, 12 Feb 2015 17:43:24 +0000 (11:43 -0600)]
Fix missing parameter name from inline wrapper

4 years agoTLS-based tramp guards and cleanup
Bill Williams [Wed, 11 Feb 2015 19:13:16 +0000 (13:13 -0600)]
TLS-based tramp guards and cleanup

Ensure tramp guard gets unlocked by DYNINSTBaseInit so that static binaries work

4 years agoUpdated addBlocks to extend blocks to include as many NOPs as possible.
Emily Gember-Jacobson [Thu, 12 Feb 2015 22:59:57 +0000 (16:59 -0600)]
Updated addBlocks to extend blocks to include as many NOPs as possible.

4 years agoUpdated generatePush64 to 14-byte sequence (from 17)
Emily Gember-Jacobson [Mon, 9 Feb 2015 23:04:49 +0000 (17:04 -0600)]
Updated generatePush64 to 14-byte sequence (from 17)

4 years agoIn AddressSpace::relocate, add functions with overlapping blocks
Emily Gember-Jacobson [Fri, 6 Feb 2015 20:46:46 +0000 (14:46 -0600)]
In AddressSpace::relocate, add functions with overlapping blocks
to the list of modified functions.
Search per-block (func might contain shared blocks) rather than
just entry block (func might be contained in other funcs).

4 years agoHandle non-returning system calls.
Emily Gember-Jacobson [Thu, 12 Feb 2015 22:20:36 +0000 (16:20 -0600)]
Handle non-returning system calls.

4 years agoImproved PC error return codes when doing operations on exited threads.
Matthew LeGendre [Thu, 12 Feb 2015 18:09:13 +0000 (10:09 -0800)]
Improved PC error return codes when doing operations on exited threads.

4 years agoIn PC, don't do the "stopped threads don't throw events" asserts for exiting threads...
Matthew LeGendre [Thu, 12 Feb 2015 18:08:49 +0000 (10:08 -0800)]
In PC, don't do the "stopped threads don't throw events" asserts for exiting threads on Linux.  Cause they can.

4 years agoAdd .note.GNU-stack sections to RT assembly files to allow for non-executable stacks...
Matthew LeGendre [Thu, 12 Feb 2015 18:03:48 +0000 (10:03 -0800)]
Add .note.GNU-stack sections to RT assembly files to allow for non-executable stacks in rewritten binaries.

4 years agoAllow SymtabAPI to find ELF TLS variables in variable lookup interface
Matthew LeGendre [Mon, 29 Dec 2014 22:11:30 +0000 (14:11 -0800)]
Allow SymtabAPI to find ELF TLS variables in variable lookup interface

4 years agoProcControlAPI support for reading and writing TLS variables
Matthew LeGendre [Mon, 29 Dec 2014 17:57:31 +0000 (09:57 -0800)]
ProcControlAPI support for reading and writing TLS variables

4 years agoMerge branch 'symtab_opt'
Bill Williams [Thu, 5 Feb 2015 16:54:23 +0000 (10:54 -0600)]
Merge branch 'symtab_opt'

4 years agoCodeObject::findBlocks forces a full parse. Just look in the current function.
Bill Williams [Wed, 4 Feb 2015 18:02:31 +0000 (12:02 -0600)]
CodeObject::findBlocks forces a full parse. Just look in the current function.

4 years agoAdd last-demangle caching in P_cplus_demangle.
Bill Williams [Wed, 4 Feb 2015 17:18:45 +0000 (11:18 -0600)]
Add last-demangle caching in P_cplus_demangle.

4 years agoSwitch to hashed indexes for faster access
Bill Williams [Fri, 30 Jan 2015 17:37:05 +0000 (11:37 -0600)]
Switch to hashed indexes for faster access

4 years agoTurned off excess debugging statements in RoseInsnFactory::convert
Emily Gember-Jacobson [Tue, 27 Jan 2015 21:59:49 +0000 (15:59 -0600)]
Turned off excess debugging statements in RoseInsnFactory::convert

4 years agoAdd DATAFLOW_EXPORT to the SliceNode class
Emily Gember-Jacobson [Tue, 27 Jan 2015 21:08:18 +0000 (15:08 -0600)]
Add DATAFLOW_EXPORT to the SliceNode class

4 years agoVarious fixes
Bill Williams [Thu, 22 Jan 2015 19:10:42 +0000 (13:10 -0600)]
Various fixes

4 years agoUse more space-efficient form of interval tree (most intervals non-overlapping) for...
Bill Williams [Thu, 15 Jan 2015 19:46:27 +0000 (13:46 -0600)]
Use more space-efficient form of interval tree (most intervals non-overlapping) for parsing

4 years agoPlug a DWARF leak. milestone_4
Bill Williams [Wed, 14 Jan 2015 01:31:01 +0000 (19:31 -0600)]
Plug a DWARF leak.

4 years agoCode cleanup.
Bill Williams [Tue, 13 Jan 2015 22:27:24 +0000 (16:27 -0600)]
Code cleanup.

4 years agoInitial implementation of lazy demangling
Bill Williams [Fri, 9 Jan 2015 18:12:41 +0000 (12:12 -0600)]
Initial implementation of lazy demangling

4 years agoLazy demangling of symbol names (per use, not cached at all). Shifted to boost multi...
Bill Williams [Fri, 2 Jan 2015 21:17:49 +0000 (15:17 -0600)]
Lazy demangling of symbol names (per use, not cached at all). Shifted to boost multi-index containers.
TODO: CMake check for multi-index containers in boost, remove dead member variables, evaluate at real scale.

4 years agoCode cleanup for STABS/PE line info milestone_3
Bill Williams [Mon, 12 Jan 2015 19:06:51 +0000 (13:06 -0600)]
Code cleanup for STABS/PE line info

4 years agoPer-CU line info parsing. Will break horribly on Windows.
Bill Williams [Fri, 12 Dec 2014 21:27:30 +0000 (15:27 -0600)]
Per-CU line info parsing. Will break horribly on Windows.

4 years agoRemove some leaks from DwarfWalker.
Bill Williams [Wed, 10 Dec 2014 22:15:15 +0000 (16:15 -0600)]
Remove some leaks from DwarfWalker.

4 years agoRead ELF machine field for architecture
Bill Williams [Wed, 12 Nov 2014 19:32:34 +0000 (13:32 -0600)]
Read ELF machine field for architecture

5 years agoUse makeSizeType instead of address width
Emily Gember-Jacobson [Fri, 21 Nov 2014 17:44:11 +0000 (11:44 -0600)]
Use makeSizeType instead of address width
for calculating LEA size in makeModRMExpression.

5 years agoFixed typo and signed/unsigned comparsion in handleNormalCall
Emily Gember-Jacobson [Thu, 20 Nov 2014 15:16:57 +0000 (09:16 -0600)]
Fixed typo and signed/unsigned comparsion in handleNormalCall

5 years agoCleaned up some old commentary in InstructionDecoder-x86.C
Emily Gember-Jacobson [Thu, 20 Nov 2014 14:59:08 +0000 (08:59 -0600)]
Cleaned up some old commentary in InstructionDecoder-x86.C