Andrew Bernat [Mon, 12 Apr 2010 19:02:27 +0000 (14:02 -0500)]
Extensions of short-range slicer
Andrew Bernat [Mon, 12 Apr 2010 19:02:06 +0000 (14:02 -0500)]
More conversion overrides for IAPI->ROSE conversions
Andrew Bernat [Mon, 12 Apr 2010 19:01:29 +0000 (14:01 -0500)]
InstructionAPI bugfixes
Andrew Bernat [Mon, 12 Apr 2010 19:01:12 +0000 (14:01 -0500)]
Bugfix for calls that aren't actually calls...
Andrew Bernat [Mon, 12 Apr 2010 19:00:12 +0000 (14:00 -0500)]
Safety check pre-disassembly
Andrew Bernat [Mon, 12 Apr 2010 18:59:54 +0000 (13:59 -0500)]
Bugfix in basetramp-less memory instrumentation
Andrew Bernat [Fri, 26 Mar 2010 21:44:16 +0000 (16:44 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
dyninstAPI/src/RegisterConversion-x86.C
Andrew Bernat [Fri, 26 Mar 2010 21:40:01 +0000 (16:40 -0500)]
Add a MachRegister->Dyninst register converter
Andrew Bernat [Fri, 26 Mar 2010 21:40:15 +0000 (16:40 -0500)]
Collected bugfixes
Bill Williams [Fri, 26 Mar 2010 21:39:03 +0000 (16:39 -0500)]
Fix bug from VXWorks commit: instruction::generate() and instruction::setInstruction once again write things on non-VXWorks builds
Matthew Legendre [Wed, 24 Mar 2010 19:47:59 +0000 (14:47 -0500)]
Small fixes for ProcControlAPI commit
Matthew Legendre [Wed, 24 Mar 2010 17:23:01 +0000 (12:23 -0500)]
New tests for ProcControlAPI
Matthew Legendre [Wed, 24 Mar 2010 17:22:43 +0000 (12:22 -0500)]
Initial implementation of ProcControlAPI for Linux/x86 family
Matthew Legendre [Wed, 24 Mar 2010 17:20:31 +0000 (12:20 -0500)]
Move the address lookup implementation from SymtabAPI to libcommon, so it can be accessed by ProcControlAPI
Andrew Bernat [Mon, 22 Mar 2010 18:03:03 +0000 (13:03 -0500)]
Replace AbsRegionAST with VariableAST.
Andrew Bernat [Mon, 22 Mar 2010 18:02:23 +0000 (13:02 -0500)]
Bugfix for stack analysis over getPC/thunk calls
Andrew Bernat [Fri, 19 Mar 2010 21:57:01 +0000 (16:57 -0500)]
Fix for incomplete merge.
Andrew Bernat [Fri, 19 Mar 2010 20:27:58 +0000 (15:27 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
symEval/src/SymEvalPolicy.h
Andrew Bernat [Fri, 19 Mar 2010 20:18:39 +0000 (15:18 -0500)]
Improve slicing to check predicates during traversal of call edges.
Andrew Bernat [Thu, 18 Mar 2010 15:12:47 +0000 (10:12 -0500)]
Make SymEval an exported header
Andrew Bernat [Fri, 19 Mar 2010 20:18:26 +0000 (15:18 -0500)]
Fix ordering issue when creating FP intervals in stack analysis
Andrew Bernat [Thu, 18 Mar 2010 15:12:18 +0000 (10:12 -0500)]
Patch ROSE instruction semantics to treat the PC as symbolic
Todd Frederick [Thu, 18 Mar 2010 19:06:32 +0000 (14:06 -0500)]
symEval: Keep track of operand sizes
Daniel McNulty [Fri, 12 Mar 2010 21:03:38 +0000 (15:03 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Fri, 12 Mar 2010 21:01:50 +0000 (15:01 -0600)]
Build fix for ia64 -- ia64 uses as instead of gcc when building the
RT library, and it doesn't accept the options -c and -D.
Also, minor bug fix for rewriting statically-linked, stripped binaries.
rchen [Wed, 3 Mar 2010 19:21:14 +0000 (14:21 -0500)]
Preliminary VxWorks Support
Major changes at the cross-platform level include reading and writing
by word to support proper handling of endian mismatches between mutator
and mutatee.
modified: common/h/Types.h
modified: common/h/fraction.h
modified: common/h/headers.h
new file: common/h/vxworksHeaders.h
new file: common/ppc32-unknown-vxworks6.x/Makefile
modified: common/src/Time.C
new file: dyninstAPI/ppc32-unknown-vxworks6.x/Makefile
modified: dyninstAPI/src/BPatch.C
modified: dyninstAPI/src/BPatch_function.C
modified: dyninstAPI/src/BPatch_snippet.C
modified: dyninstAPI/src/InstrucIter-power.C
modified: dyninstAPI/src/addressSpace.h
modified: dyninstAPI/src/aix.C
modified: dyninstAPI/src/arch-power.C
modified: dyninstAPI/src/arch-power.h
modified: dyninstAPI/src/binaryEdit.C
modified: dyninstAPI/src/binaryEdit.h
modified: dyninstAPI/src/dyn_lwp.h
modified: dyninstAPI/src/inst-power.C
modified: dyninstAPI/src/inst-power.h
modified: dyninstAPI/src/linux.C
modified: dyninstAPI/src/mapped_object.C
modified: dyninstAPI/src/multiTramp.C
modified: dyninstAPI/src/os.h
modified: dyninstAPI/src/pdwinnt.C
modified: dyninstAPI/src/process.C
modified: dyninstAPI/src/process.h
modified: dyninstAPI/src/procfs.C
modified: dyninstAPI/src/rpcMgr-thr.C
modified: dyninstAPI/src/signalgenerator.C
modified: dyninstAPI/src/signalhandler.C
modified: dyninstAPI/src/sol_proc.C
modified: dyninstAPI/src/symtab.C
new file: dyninstAPI/src/syscall-vxworks.C
modified: dyninstAPI/src/unix.C
new file: dyninstAPI/src/vxworks.C
new file: dyninstAPI/src/vxworks.h
modified: dyninstAPI_RT/h/dyninstAPI_RT.h
new file: dyninstAPI_RT/ppc32-unknown-vxworks6.x/Makefile
modified: dyninstAPI_RT/src/RTcommon.c
modified: dyninstAPI_RT/src/RTheap.h
modified: dyninstAPI_RT/src/RTlinux.c
modified: dyninstAPI_RT/src/RTposix.c
modified: dyninstAPI_RT/src/RTspace.S
new file: dyninstAPI_RT/src/RTspace-smallmem.S
modified: dyninstAPI_RT/src/RTthread-index.c
new file: dyninstAPI_RT/src/RTvxworks.c
modified: make.config
modified: symtabAPI/h/Region.h
modified: symtabAPI/h/Symtab.h
new file: symtabAPI/ppc32-unknown-vxworks6.x/Makefile
modified: symtabAPI/src/Aggregate.C
modified: symtabAPI/src/Elf_X.h
modified: symtabAPI/src/Function.C
modified: symtabAPI/src/Object-elf.C
modified: symtabAPI/src/Object.h
modified: symtabAPI/src/Region.C
modified: symtabAPI/src/Symtab.C
modified: symtabAPI/src/Variable.C
modified: dyninstAPI/ppc32-unknown-vxworks6.x/Makefile
modified: dyninstAPI/src/InstrucIter-xplat.C
modified: dyninstAPI/src/InstrucIter.h
modified: dyninstAPI/src/arch-power.C
modified: symtabAPI/h/Symtab.h
modified: symtabAPI/src/Object-elf.C
modified: symtabAPI/src/Region.C
modified: symtabAPI/src/Symtab.C
Andrew Bernat [Thu, 11 Mar 2010 22:29:56 +0000 (16:29 -0600)]
Prototype implementation of slice->AST symbolic expansion mechanism.
Andrew Bernat [Wed, 10 Mar 2010 23:00:31 +0000 (17:00 -0600)]
Correctly implement sign-extension for constant types.
Andrew Bernat [Wed, 10 Mar 2010 22:19:13 +0000 (16:19 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Wed, 10 Mar 2010 22:17:06 +0000 (16:17 -0600)]
Reimplementation of ASTs as non-templated to allow creation of visitor classes.
Todd Frederick [Wed, 10 Mar 2010 17:27:08 +0000 (11:27 -0600)]
SymEval: remove redundant handling of PC for call instruction
Todd Frederick [Wed, 10 Mar 2010 16:38:49 +0000 (10:38 -0600)]
SymEval: Fix conversion to ROSE instruction involving implicit PC updates
Matthew Legendre [Tue, 9 Mar 2010 21:54:37 +0000 (15:54 -0600)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Tue, 9 Mar 2010 21:48:43 +0000 (15:48 -0600)]
More fixes for StackwalkerAPI and new register interface
Matthew Legendre [Tue, 9 Mar 2010 21:44:18 +0000 (15:44 -0600)]
Fixes for PPC stackwalking
Andrew Bernat [Tue, 9 Mar 2010 19:54:06 +0000 (13:54 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Tue, 9 Mar 2010 19:53:19 +0000 (13:53 -0600)]
SymEval and related bugfixes;
Initial implementation of a find-and-replace AST mechanism;
Initial implementation of an AST-based stack slot resolver
Matthew Legendre [Tue, 9 Mar 2010 19:20:33 +0000 (13:20 -0600)]
StackwalkerAPI fixes for working with new register class
Matthew Legendre [Tue, 9 Mar 2010 19:20:10 +0000 (13:20 -0600)]
Add DWARF reg conversion to new register class
Andrew Bernat [Fri, 5 Mar 2010 22:37:55 +0000 (16:37 -0600)]
Added initial BindEval for stack slots;
Fixed call handling in symbolic expansion;
Added AST substitutions.
Bill Williams [Fri, 5 Mar 2010 20:10:40 +0000 (14:10 -0600)]
Integration bug fixes.
Bill Williams [Thu, 4 Mar 2010 23:10:48 +0000 (17:10 -0600)]
Warning cleanup.
Bill Williams [Thu, 4 Mar 2010 21:48:29 +0000 (15:48 -0600)]
Fix Sparc build.
Bill Williams [Thu, 4 Mar 2010 18:26:44 +0000 (12:26 -0600)]
Restore POWER/Linux PLT functionality
Bill Williams [Wed, 3 Mar 2010 22:53:27 +0000 (16:53 -0600)]
Optimizations for Synopsis
Andrew Bernat [Thu, 4 Mar 2010 17:52:18 +0000 (11:52 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Thu, 4 Mar 2010 17:51:59 +0000 (11:51 -0600)]
Add explicit flags register representations; SymEval bugfixes.
Matthew Legendre [Wed, 3 Mar 2010 22:46:20 +0000 (16:46 -0600)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Conflicts:
make.config
Matthew Legendre [Wed, 3 Mar 2010 21:02:22 +0000 (15:02 -0600)]
Further work on AIX stackwalking
Daniel McNulty [Wed, 3 Mar 2010 15:35:43 +0000 (09:35 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Andrew Bernat [Wed, 3 Mar 2010 00:08:56 +0000 (18:08 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
symEval/src/SymEval.C
symEval/src/SymEvalPolicy.C
Andrew Bernat [Tue, 2 Mar 2010 23:28:34 +0000 (17:28 -0600)]
Bugfixes for slicing and general compile fixes for SymEval component
Todd Frederick [Tue, 2 Mar 2010 23:18:49 +0000 (17:18 -0600)]
SymEval: Use MachRegister interface
Todd Frederick [Tue, 2 Mar 2010 22:40:14 +0000 (16:40 -0600)]
Register interface: Added converter to ROSE register type
Daniel McNulty [Tue, 2 Mar 2010 21:16:49 +0000 (15:16 -0600)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Fri, 26 Feb 2010 17:41:24 +0000 (11:41 -0600)]
Fixed problems related to loading libraries introduced by a previous commit.
1) On platforms that do not support the binary rewriter, opening a binary with
BPatch_binaryEdit would fail because openResolvedLibraryName was not
implemented for these platforms. A generic version of openResolvedLibraryName
was implemented on these platforms. openResolvedLibraryName is now used to open
the RT library because it can be a collection of BinaryEdits in the static
binary case. Previously, the RT library was opened with openFile.
2) Prior to this commit, in order to work with a static binary via
BPatch_binaryEdit the DYNINSTAPI_RT_LIB environment variable needed to point
to the .a version of the RT lib. This inhibits a user from working with a
dynamic binary and a static binary at the same time. Now, the
DYNINSTAPI_RT_LIB variable is used to find the directory that holds both
versions of the RT library. The correct version is chosen depending on the
type of binary opened via BPatch_binaryEdit.
Todd Frederick [Tue, 2 Mar 2010 19:41:51 +0000 (13:41 -0600)]
Add ROSE compatability enums
Andrew Bernat [Tue, 2 Mar 2010 19:26:39 +0000 (13:26 -0600)]
Initial SymEval prototype; stack analysis fixes to handle destroyed stack frames.
Andrew Bernat [Mon, 1 Mar 2010 21:35:43 +0000 (15:35 -0600)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
dyninstAPI/src/stackanalysis.C
Andrew Bernat [Mon, 1 Mar 2010 21:27:13 +0000 (15:27 -0600)]
Fix stackanalysis for frame pointers.
Matthew Legendre [Fri, 26 Feb 2010 19:33:24 +0000 (13:33 -0600)]
Support for StackwalkerAPI on AIX
Matthew Legendre [Fri, 26 Feb 2010 00:25:10 +0000 (18:25 -0600)]
Fix dyninst fault when stripped code parsing libraries with 0 symbols in the dynamic or regular symbol table.
Nathan Rosenblum [Wed, 24 Feb 2010 18:02:12 +0000 (12:02 -0600)]
Missing instruction mnemonic
Nathan Rosenblum [Wed, 24 Feb 2010 17:59:58 +0000 (11:59 -0600)]
Nathan Rosenblum [Wed, 24 Feb 2010 16:25:00 +0000 (10:25 -0600)]
Merge branch 'master' of ssh://nater@git.dyninst.org/pub/dyninst
Nathan Rosenblum [Wed, 24 Feb 2010 16:24:57 +0000 (10:24 -0600)]
fixes
Bill Williams [Mon, 22 Feb 2010 19:22:15 +0000 (13:22 -0600)]
Integration bugfixes.
Bill Williams [Mon, 22 Feb 2010 18:53:09 +0000 (12:53 -0600)]
PowerPC/Linux bug fixes: don't treat call-next-insn as an ABI-conforming call in liveness
Bill Williams [Mon, 22 Feb 2010 18:41:28 +0000 (12:41 -0600)]
Remove some unnecessary duplicate operand construction.
Bill Williams [Fri, 19 Feb 2010 23:18:49 +0000 (17:18 -0600)]
SPR read/write set bugfix.
Bill Williams [Fri, 19 Feb 2010 22:06:32 +0000 (16:06 -0600)]
Remove dead include to List.h
Bill Williams [Fri, 19 Feb 2010 21:53:02 +0000 (15:53 -0600)]
Add instructionAPI dependency to all powerpc/power makefiles.
Bill Williams [Fri, 19 Feb 2010 21:23:54 +0000 (15:23 -0600)]
Final integration bugfixes and restoration of AIX/gcc4.2.0 compatibility
Bill Williams [Thu, 18 Feb 2010 20:38:07 +0000 (14:38 -0600)]
Kill warnings.
Bill Williams [Thu, 18 Feb 2010 20:28:46 +0000 (14:28 -0600)]
Further bug fixes: get tests using right architecture/address width, initialize Operation member variables correctly.
Bill Williams [Thu, 18 Feb 2010 19:14:55 +0000 (13:14 -0600)]
Stronger sanity checking for mod r/m displacements.
Bill Williams [Thu, 18 Feb 2010 19:14:35 +0000 (13:14 -0600)]
Update to use new MachRegister class.
Bill Williams [Thu, 18 Feb 2010 19:14:21 +0000 (13:14 -0600)]
Remove pool allocator from IAPI shared pointer factory, since there's no way to make it thread-safe.
Bill Williams [Thu, 18 Feb 2010 19:13:48 +0000 (13:13 -0600)]
ParseDwarf bug fixes: strtoul replaces strtol, fixing a warning on pgcc mutatees; bug fix for ia32 Dwarf register to MachRegister conversion.
Bill Williams [Thu, 18 Feb 2010 19:12:31 +0000 (13:12 -0600)]
Bug fixes for IA32/AMD64
Bill Williams [Thu, 18 Feb 2010 19:11:11 +0000 (13:11 -0600)]
PPC32 Linux fixes
Bill Williams [Mon, 15 Feb 2010 18:23:29 +0000 (12:23 -0600)]
Reenable conversion to signed int for MachRegister, now that we've converted and nobody can do anything too stupid.
Bill Williams [Mon, 15 Feb 2010 17:54:56 +0000 (11:54 -0600)]
Optimizations & bugfixes:
* Instructions get shared pointers to the correct decoder, rather than constructing fresh ones to decode operands.
* InstructionDecoder now has setBuffer(buffer, size) and resetBuffer() methods. resetBuffer() resets to state before previous setBuffer().
* Added operands to a few x86 opcodes that were missing their read/write sets.
* Removed old architecture enum--everything should be going through MachRegister's architecture definitions now.
* InstructionDecoders no longer copyable--this should have been disabled when we went to factory construction, but wasn't.
* InstructionAdapter no longer tries to copy a decoder.
Bill Williams [Thu, 11 Feb 2010 22:30:41 +0000 (16:30 -0600)]
More debug logging; return false if no valid edges (not safe to relocate func w/jump table).
Bill Williams [Thu, 11 Feb 2010 20:23:19 +0000 (14:23 -0600)]
InstructionAPI Register formatting consistent with previous disassembly.
Bill Williams [Thu, 11 Feb 2010 19:13:10 +0000 (13:13 -0600)]
Add check for signal.h to 32-bit RTlib test to catch bad include setup.
Bill Williams [Thu, 11 Feb 2010 19:12:39 +0000 (13:12 -0600)]
Assorted bugfixes for registers with non-full widths.
Andrew Bernat [Thu, 4 Feb 2010 21:53:07 +0000 (15:53 -0600)]
Bugfixes:
Add missing registers in map from InstructionAPI registers to Dyninst internal registers
Do not segfault when generating an empty AST sequence node
Use codeGen index methods to rewind in baseTramp code generation
Use Result::convert in stack analysis instead of translating by hand
Bugfix in InstructionAPI mod/rm byte decoding
Fix accidentally decoding LEAs as using memory.
Consider writes to portions of registers (IA-32 aliasing) to be a use of the register as well
Correctly emit rex byte for instruction::generateMem
Correct decoding of REX + SIB expressions
Bill Williams [Wed, 10 Feb 2010 16:25:28 +0000 (10:25 -0600)]
Massive changes to get InstructionAPI working with new MachRegister class.
TODO: fix stack tests, fix thread tests, test cross-platform, code cleanup.
Bill Williams [Mon, 8 Feb 2010 17:01:19 +0000 (11:01 -0600)]
New MachRegister class: stackwalk-x86, parseDwarf, POWER IAPI integration
Bill Williams [Thu, 4 Feb 2010 23:07:06 +0000 (17:07 -0600)]
Fix parentheses.
Bill Williams [Thu, 4 Feb 2010 23:06:55 +0000 (17:06 -0600)]
Add architecture bit.
Bill Williams [Thu, 4 Feb 2010 22:00:43 +0000 (16:00 -0600)]
Added conditional branch instructions to ppc read/write set test.
Bill Williams [Thu, 4 Feb 2010 21:53:09 +0000 (15:53 -0600)]
Power liveness now using instructionAPI. Still needs cleanup, but works.
Bill Williams [Thu, 4 Feb 2010 18:15:32 +0000 (12:15 -0600)]
IAPI/Power to dyn_regs based register IDs; liveness with cheap hack GPR conversion.
Bill Williams [Thu, 4 Feb 2010 17:32:44 +0000 (11:32 -0600)]
bug fix for checking AIX 32 bit environment: -maix32, not -m32.
Bill Williams [Thu, 4 Feb 2010 17:16:41 +0000 (11:16 -0600)]
Get instruction categories right on Power--calls and returns need special handling because we can't tell from just the opcode.
Bill Williams [Thu, 4 Feb 2010 17:15:19 +0000 (11:15 -0600)]
Added comparison instructions on Power to instruction categories.
Bill Williams [Thu, 4 Feb 2010 17:14:23 +0000 (11:14 -0600)]
Add InstructionAPI to AIX/power build.
Bill Williams [Thu, 4 Feb 2010 17:12:20 +0000 (11:12 -0600)]
Set architecture variable for power so we can use InstructionAPI.