Bill Williams [Thu, 6 May 2010 19:42:29 +0000 (14:42 -0500)]
Slight optimization: statically construct stack pointer/frame pointer/PC ASTs.
Bill Williams [Thu, 6 May 2010 16:02:30 +0000 (11:02 -0500)]
Bug fix: safety check find() results before modifying mnemonic.
Daniel McNulty [Wed, 5 May 2010 22:07:22 +0000 (17:07 -0500)]
Fix for a section alignment bug when using libelf.so.1. Despite the
standard specifically saying that a section with an alignment of 1
is a don't care, libelf.so.1 doesn't agree. The default alignment of
newly created Regions is now sizeof(unsigned) instead of 1.
Andrew Bernat [Wed, 5 May 2010 17:38:00 +0000 (12:38 -0500)]
Move patching code to separate header file
Andrew Bernat [Wed, 5 May 2010 17:31:01 +0000 (12:31 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
symtabAPI/src/emitElf.C
Bill Williams [Wed, 5 May 2010 16:58:00 +0000 (11:58 -0500)]
PPC libelf doesn't like calling elf_errno() once...
Andrew Bernat [Wed, 5 May 2010 16:57:34 +0000 (11:57 -0500)]
Fix compile error using errno
Andrew Bernat [Wed, 5 May 2010 16:53:34 +0000 (11:53 -0500)]
Fix memory rewriting to work with new IAPI parsing internals
Conflicts:
dyninstAPI/src/arch-x86.C
dyninstAPI/src/arch-x86.h
Andrew Bernat [Wed, 5 May 2010 16:47:03 +0000 (11:47 -0500)]
Fix "isFallthrough" method.
Bill Williams [Wed, 5 May 2010 16:03:10 +0000 (11:03 -0500)]
Add libelf error message to a handler for failed ELF updates.
Bill Williams [Wed, 5 May 2010 16:02:20 +0000 (11:02 -0500)]
Build fixes for PPC/Linux.
Ray Chen [Tue, 4 May 2010 21:23:22 +0000 (17:23 -0400)]
More GCC 4.4.3 fixes.
Bill Williams [Tue, 4 May 2010 20:51:14 +0000 (15:51 -0500)]
Windows fixes.
Bill Williams [Tue, 4 May 2010 19:48:58 +0000 (14:48 -0500)]
Widnows testsuite build fixes.
Bill Williams [Mon, 3 May 2010 19:13:47 +0000 (14:13 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Conflicts:
instructionAPI/src/arch-x86.C
Bill Williams [Wed, 28 Apr 2010 22:09:55 +0000 (17:09 -0500)]
Bug fix: use the correct relocation size everywhere in emitElf-64.
Bill Williams [Fri, 30 Apr 2010 20:39:58 +0000 (15:39 -0500)]
Windows build fixes.
Ray Chen [Fri, 30 Apr 2010 00:27:27 +0000 (20:27 -0400)]
Fix for bug #1052: PPC segfault with SecurePLT relocation entries.
Add a quick check to make sure we found a glink section before dereferencing
a pointer to it.
Bill Williams [Thu, 29 Apr 2010 18:10:43 +0000 (13:10 -0500)]
POWER fixes: IAPI makefile for AIX64, fix for jump table parsing that could lead to reading an invalid insn, link dyninst against IAPI based on cap_instruction_api rather than in the platform makefiles.
Bill Williams [Wed, 28 Apr 2010 22:46:39 +0000 (17:46 -0500)]
Remove old registerIDs source file
Bill Williams [Wed, 28 Apr 2010 22:09:55 +0000 (17:09 -0500)]
Bug fix: use the correct relocation size everywhere in emitElf-64.
Bill Williams [Wed, 28 Apr 2010 22:09:35 +0000 (17:09 -0500)]
Documentation updates for InstructionAPI.
Bill Williams [Fri, 23 Apr 2010 22:20:43 +0000 (17:20 -0500)]
Cleanup: replace some clunky bind/eval hackery with a visitor that does the same thing, only better.
Bill Williams [Fri, 23 Apr 2010 21:18:07 +0000 (16:18 -0500)]
Code cleanup: remove dead functions, fully remove old IAPI register enum, move decoder impl classes to src/, move entryIDs-IA32 to entryIDs to properly reflect cross-architecture status.
Move ia32_locations struct to common (non-public-header division).
Clean up assorted files that should never again be build without cap_instruction_api to remove old InstrucIter-based implementations.
Bill Williams [Thu, 22 Apr 2010 20:53:17 +0000 (15:53 -0500)]
Cleanup: separate InstructionDecoderImpl into new files, remove impl files from public headers, use InstructionDecoder::buffer struct, convert Operand storage from vector to list
Bill Williams [Thu, 22 Apr 2010 18:55:02 +0000 (13:55 -0500)]
Split InstructionDecoder into lightweight interface w/value semantics and (mostly) stateless per-architecture strategy class.
Bill Williams [Thu, 22 Apr 2010 17:41:00 +0000 (12:41 -0500)]
Corrected flag definitions in arch-x86.C:
* bsr has the same flag behavior as bsf
* jcxz does not touch flags
* loop does not touch flags, lodsb and lodsw do
* salc reads the carry flag
* test writes the usual set of flags
Daniel McNulty [Thu, 22 Apr 2010 16:42:44 +0000 (11:42 -0500)]
Added missing IF flags register to RegisterConversion for x86.
Andrew Bernat [Wed, 21 Apr 2010 16:12:45 +0000 (11:12 -0500)]
Fix x86-based symbolic evaluation and slicing
Andrew Bernat [Tue, 20 Apr 2010 16:00:42 +0000 (11:00 -0500)]
Disable slicer debugging.
Andrew Bernat [Tue, 20 Apr 2010 15:58:08 +0000 (10:58 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
symEval/src/slicing.C
Bill Williams [Mon, 19 Apr 2010 22:13:34 +0000 (17:13 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Bill Williams [Mon, 19 Apr 2010 22:11:43 +0000 (17:11 -0500)]
Cheap hack to make SymEval build despite mismatch in predicate parameters.
Bill Williams [Mon, 19 Apr 2010 22:08:52 +0000 (17:08 -0500)]
Revert slicing to git-head. Build fixes. Slicing predicate funcs mismatched in git-head.
Matthew Legendre [Mon, 19 Apr 2010 21:53:43 +0000 (16:53 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Mon, 19 Apr 2010 21:52:57 +0000 (16:52 -0500)]
Fixes for ProcControl on static binaries, cleans up exit process handling
Bill Williams [Mon, 19 Apr 2010 21:17:03 +0000 (16:17 -0500)]
symeval build fix
Bill Williams [Mon, 19 Apr 2010 21:14:54 +0000 (16:14 -0500)]
More integration
Bill Williams [Mon, 19 Apr 2010 20:49:20 +0000 (15:49 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Bill Williams [Mon, 19 Apr 2010 20:49:14 +0000 (15:49 -0500)]
BEGIN integration/regression changes/fixes
Ray Chen [Mon, 19 Apr 2010 19:22:08 +0000 (15:22 -0400)]
GCC 4.4.3 fixes.
Small changes to satisfy the slightly more robust GCC 4.4.3 compiler.
Andrew Bernat [Fri, 16 Apr 2010 20:03:26 +0000 (15:03 -0500)]
Handle stack-cleaning returns properly
Andrew Bernat [Fri, 16 Apr 2010 20:04:18 +0000 (15:04 -0500)]
Fix stack problem in local slicer
Bill Williams [Tue, 13 Apr 2010 14:01:59 +0000 (09:01 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Bill Williams [Tue, 13 Apr 2010 14:01:50 +0000 (09:01 -0500)]
WIP
Andrew Bernat [Tue, 13 Apr 2010 13:52:53 +0000 (08:52 -0500)]
Guard a pointer dereference
Bill Williams [Mon, 12 Apr 2010 21:17:10 +0000 (16:17 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Conflicts:
instructionAPI/src/InstructionDecoder-x86.C
symEval/src/SymEval.C
symEval/src/slicing.C
Andrew Bernat [Mon, 12 Apr 2010 19:47:11 +0000 (14:47 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
instructionAPI/src/InstructionDecoder-x86.C
Andrew Bernat [Mon, 12 Apr 2010 19:07:36 +0000 (14:07 -0500)]
Extend slicing interface
Conflicts:
symEval/h/slicing.h
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
Bill Williams [Wed, 7 Apr 2010 17:46:21 +0000 (12:46 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Bill Williams [Wed, 7 Apr 2010 17:36:39 +0000 (12:36 -0500)]
Final fixes for IAPI/Power integration:
* Remove invalid assert from Power rewriter commit in emitFuncJump
* Fix autoconf to properly detect g++ and native demanglers on AIX.
* Remove a stray #define DEBUG from stack tests.
Nathan Rosenblum [Wed, 7 Apr 2010 02:45:25 +0000 (21:45 -0500)]
Allow x86 instructions to have two immediate operands (like ENTER).
Bill Williams [Tue, 6 Apr 2010 16:42:20 +0000 (11:42 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Conflicts:
dyninstAPI/src/RegisterConversion-x86.C
dyninstAPI/src/stackanalysis.C
dyninstAPI/src/symtab.C
make.config
symEval/h/SymEval.h
symEval/src/SymEval.C
symEval/src/SymEvalPolicy.C
symEval/src/SymEvalPolicy.h
Bill Williams [Tue, 6 Apr 2010 15:33:19 +0000 (10:33 -0500)]
power/linux IAPI passes all tests
Bill Williams [Thu, 1 Apr 2010 18:22:29 +0000 (13:22 -0500)]
Merge branch 'master' of ssh://bill@follis.cs.wisc.edu/p/paradyn/development/bill/test/dyninst
Bill Williams [Thu, 1 Apr 2010 18:22:23 +0000 (13:22 -0500)]
power/linux jump table fixes
Bill Williams [Thu, 1 Apr 2010 18:15:51 +0000 (13:15 -0500)]
Fix compiler warning.
Bill Williams [Thu, 1 Apr 2010 18:15:43 +0000 (13:15 -0500)]
Handle access to EFLAGS register in liveness.
Bill Williams [Thu, 1 Apr 2010 18:15:22 +0000 (13:15 -0500)]
Use the right architecture for lookahead decoding.
Bill Williams [Thu, 1 Apr 2010 18:15:01 +0000 (13:15 -0500)]
Fix for ppc_linux jump tables
Madhavi Krishnan [Wed, 31 Mar 2010 20:54:17 +0000 (15:54 -0500)]
More changes to power instruction generation
Madhavi Krishnan [Wed, 31 Mar 2010 20:26:02 +0000 (15:26 -0500)]
Corrected inst-power changes
Bill Williams [Wed, 31 Mar 2010 19:35:32 +0000 (14:35 -0500)]
InstructionAPI POWER port: jump table parsing works on AIX, memory tests work, AIX TOC lookup ported. Infrastructure laid down for OMP parsing port.
ODO: secondary FP saves iff we've found secondary FP use, test PPC linux, fix 32-bit mode hacks, code cleanup.
Madhavi Krishnan [Wed, 31 Mar 2010 17:39:42 +0000 (12:39 -0500)]
PowerPC rewriter tests
This commit enables rewriter tests for PowerPC platform.
Madhavi Krishnan [Wed, 31 Mar 2010 17:22:05 +0000 (12:22 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Madhavi Krishnan [Wed, 31 Mar 2010 17:21:46 +0000 (12:21 -0500)]
PowerPC Rewriter commit
This commit implements rewriter on powerPC. It implements PIC code generation,
and other changes required to enable binary rewriting in power.
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
Bill Williams [Fri, 26 Mar 2010 20:04:37 +0000 (15:04 -0500)]
Fix detach() handling: add appropriate RPC callback/wait mechanism, and elease the global lock when we leave waitNextEvent().
Also clean up traps behind ourselves when we detach.
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
Bill Williams [Tue, 23 Mar 2010 20:08:00 +0000 (15:08 -0500)]
Power jump table implementation w/IAPI; desperately needs cleanup.
Bill Williams [Tue, 23 Mar 2010 15:52:31 +0000 (10:52 -0500)]
Merge/rebase fixes
Bill Williams [Fri, 12 Mar 2010 22:11:57 +0000 (16:11 -0600)]
check glink section for null, bail if so
Bill Williams [Mon, 22 Mar 2010 15:26:22 +0000 (10:26 -0500)]
Check edges from all control flow insns, not just x86 calls, in stack analysis.
More slicing WIP and merge fixes.
Bill Williams [Wed, 17 Mar 2010 15:53:06 +0000 (10:53 -0500)]
jump table slicing WIP: get backwards slice from indirect branch and examine it
Bill Williams [Tue, 16 Mar 2010 22:43:24 +0000 (17:43 -0500)]
Bind the effective address, not the dereference!
Bill Williams [Tue, 16 Mar 2010 22:39:41 +0000 (17:39 -0500)]
more log
Bill Williams [Tue, 16 Mar 2010 22:36:46 +0000 (17:36 -0500)]
debugging logging
Bill Williams [Tue, 16 Mar 2010 22:18:08 +0000 (17:18 -0500)]
test impl of stack analysis for ppc
Bill Williams [Tue, 16 Mar 2010 21:47:30 +0000 (16:47 -0500)]
add powerpcInstructionEnum to external/rose
Emily Jacobson [Tue, 16 Mar 2010 21:30:29 +0000 (16:30 -0500)]
A working, but not yet complete, implementation of backward slicing.
Bill Williams [Tue, 16 Mar 2010 16:46:42 +0000 (11:46 -0500)]
more bugfixes
Bill Williams [Tue, 16 Mar 2010 16:41:56 +0000 (11:41 -0500)]
implementation of regClassToString for debugging
Bill Williams [Mon, 15 Mar 2010 22:39:25 +0000 (17:39 -0500)]
Add absolute forms to unconditional branches & link forms to conditional branches.
Bill Williams [Mon, 15 Mar 2010 20:10:49 +0000 (15:10 -0500)]
Continuing bugfixes for symeval/rose operand matching.
Bill Williams [Mon, 15 Mar 2010 20:05:19 +0000 (15:05 -0500)]
Swap all PPC stores so that their source/destination operands are in the order ROSE expects.
Bill Williams [Mon, 15 Mar 2010 17:16:41 +0000 (12:16 -0500)]
More bug fixes to make converted ROSE insns behave with their semantics module.
Bill Williams [Mon, 15 Mar 2010 17:11:13 +0000 (12:11 -0500)]
Bug fix: bo, bi can be 0 but we need to pass them in anyway...
Bill Williams [Mon, 15 Mar 2010 16:54:14 +0000 (11:54 -0500)]
Various changes to make SymEval play nicely with the Power semantics module.