Daniel McNulty [Wed, 28 Apr 2010 17:52:53 +0000 (12:52 -0500)]
BPatch_binaryEdit::staticExecutableLoaded was poorly named. Changing
its name to isStaticExecutable (per feedback from others in the group).
This also involves changes to the testsuite.
Fixed some bugs in the rewriter of static binaries:
- was using replaceFunctionCall to replace ctor and dtor handlers -- this
appears to be having some problems on x86. Instead just instrumented the
original ctor/dtor handler with a funcJump to the new handler. In retrospect,
this is the better solution.
- Variables in relocatable files that are in COMMON were not being created
correctly by Symtab. If a variable is in COMMON, there is no way to have an
alias for this variable so new variables are created for every COMMON symbol
that corresponds to a variable.
Daniel McNulty [Tue, 20 Apr 2010 14:27:13 +0000 (09:27 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
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.
Daniel McNulty [Wed, 14 Apr 2010 20:34:32 +0000 (15:34 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Wed, 14 Apr 2010 20:25:07 +0000 (15:25 -0500)]
Turned warning into debug message -- 'call 0' legally occurs when weak
symbols are left undefined.
Fixed some typos in doStaticBinarySpecialCases
When I added the alignment field to the Region class, the default
alignment of 1 wasn't making libelf.so.1 happy. The default alignment
is now sizeof(unsigned).
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
Daniel McNulty [Thu, 1 Apr 2010 20:42:24 +0000 (15:42 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Conflicts:
testsuite/ppc32_linux/test_info_new.gen.C
testsuite/ppc32_linux/tuples
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
Daniel McNulty [Thu, 1 Apr 2010 18:20:24 +0000 (13:20 -0500)]
Extend testsuite to build and test static binaries. Adds new dimension to test
space -- dynamic vs. static link. runTests and test_driver now accept the
options(-dynamiclink,-staticlink) to run against dynamically or statically
linked binaries. The default is to have both options on, but statically linked
binaries will only be tested in rewriter mode. This included some changes to
the test infrastructure code as well as the specification.
Also, fixes some bugs in the rewriter of static binaries: restoring symbol
information after performing the rewrite to all Symtab caching to work correctly
and automatically loading the dependencies for the static RT library (just
libc for now).
All rewriter tests pass for static binaries except test5_6. test5_6 (Exception
test) instruments the catch block of an exception block. The mutatee makes a
call to a function that always throws an exception; parsing currently
classifies this case as a non-returning function. In the calling function, the
non-returning call causes the parser to stop parsing the function and never
find the catch block. Because of this, the mutator fails to find and instrument
the call block. This isn't a problem for the dynamic case because the call is
routed through the PLT and is therefore, not a non-returning call. At the time
of the commit, I didn't know how to fix this.
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.
Bill Williams [Mon, 15 Mar 2010 16:48:30 +0000 (11:48 -0500)]
Add special-case handling for branch instructions, since ROSE semantics wants the BO operand in its integer form, and wants to separate out all the absolute/link stuff into the opcode.
Bill Williams [Fri, 12 Mar 2010 22:27:52 +0000 (16:27 -0600)]
PowerPC registers for ROSE semantics...
Emily Jacobson [Fri, 12 Mar 2010 22:20:08 +0000 (16:20 -0600)]
Backwards slicing and 32-bit fixes.
Bill Williams [Fri, 12 Mar 2010 17:52:36 +0000 (11:52 -0600)]
SymEval for POWER: WIP
Bill Williams [Fri, 12 Mar 2010 20:44:10 +0000 (14:44 -0600)]
Enable IAPI for ppc32_linux
Bill Williams [Wed, 24 Feb 2010 18:18:04 +0000 (12:18 -0600)]
cap_instruction_api enabled for AIX/POWER.
Emily Jacobson [Fri, 12 Mar 2010 22:19:52 +0000 (16:19 -0600)]
Working syscall identification prototype
Emily Jacobson [Thu, 11 Mar 2010 22:55:10 +0000 (16:55 -0600)]
Separated IA_IAPI::isInterruptOrSyscall()
into IA_IAPI::isInterrupt() and IA_IAPI::isSyscall().
Emily Jacobson [Tue, 2 Mar 2010 19:03:56 +0000 (13:03 -0600)]
Added vsyscall and int 80 instructions to IA_IAPI::isInterruptOrSyscall().
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