Matthew Legendre [Thu, 20 May 2010 17:05:23 +0000 (12:05 -0500)]
Add autoconf options for using icc and pgcc in testsuite
Matthew Legendre [Fri, 14 May 2010 21:48:07 +0000 (16:48 -0500)]
Final fixes for StackwalkerAPI/SymtabAPI separation
legendre [Fri, 14 May 2010 21:46:06 +0000 (16:46 -0500)]
Windows fixes for SymtabAPI/StackwalkerAPI separation
Matthew Legendre [Fri, 14 May 2010 20:44:02 +0000 (15:44 -0500)]
Fixes for StackwalkerAPI on Linux/ppc32
Matthew Legendre [Fri, 14 May 2010 16:59:21 +0000 (11:59 -0500)]
Further work separating Stack walking from SymtabAPI
Matthew Legendre [Wed, 12 May 2010 19:53:17 +0000 (14:53 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Wed, 12 May 2010 19:52:56 +0000 (14:52 -0500)]
Continue separating some DWARF parsing into StackwalkerAPI
Matthew Legendre [Wed, 12 May 2010 19:42:03 +0000 (14:42 -0500)]
Refactoring some DWARF parsing to be accessible to StackwalkerAPI
Bill Williams [Tue, 11 May 2010 21:20:13 +0000 (16:20 -0500)]
Restrict proccontrol mutatees to gcc/g++ for now (and define this once and only once).
Bill Williams [Tue, 11 May 2010 17:25:21 +0000 (12:25 -0500)]
Replace g77 with gfortran.
Bill Williams [Mon, 10 May 2010 22:07:33 +0000 (17:07 -0500)]
Further bugfix for REP/REPNZ. They weren't writing to ECX, or reading the zero flag in the REPNZ case.
Bill Williams [Mon, 10 May 2010 18:25:02 +0000 (13:25 -0500)]
Migration from g77 to gfortran.
Bill Williams [Mon, 10 May 2010 18:24:20 +0000 (13:24 -0500)]
Don't overwrite already-done setup in operation-level reads/writes.
Bill Williams [Mon, 10 May 2010 18:23:56 +0000 (13:23 -0500)]
Add missing ECX read to REP prefixed instructions
Daniel McNulty [Mon, 10 May 2010 03:18:46 +0000 (22:18 -0500)]
Fixes for rewriter of static binaries.
Generated testsuite files for x86 and x86_64 to enable snip_* tests for static
binaries.
Daniel McNulty [Sun, 9 May 2010 17:08:15 +0000 (12:08 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Ray Chen [Fri, 7 May 2010 21:47:01 +0000 (17:47 -0400)]
Various makefile fixes.
1) Fix small typo in main Makefile dependencies.
2) Fix parseThat Makefiles to avoid "same file" error messages on install.
3) Set Fortran compiler to gfortran for i386-unknown-linux platforms.
Bill Williams [Fri, 7 May 2010 19:29:54 +0000 (14:29 -0500)]
Remove boost::assign from optimization so AIX builds.
Bill Williams [Fri, 7 May 2010 16:53:56 +0000 (11:53 -0500)]
Bug fixes for segment registers, 16-bit mod/rm prefixes.
Daniel McNulty [Thu, 6 May 2010 21:48:45 +0000 (16:48 -0500)]
Enabling snip_* tests.
Bill Williams [Thu, 6 May 2010 19:42:29 +0000 (14:42 -0500)]
Slight optimization: statically construct stack pointer/frame pointer/PC ASTs.
Daniel McNulty [Thu, 6 May 2010 18:00:03 +0000 (13:00 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Bill Williams [Thu, 6 May 2010 16:02:30 +0000 (11:02 -0500)]
Bug fix: safety check find() results before modifying mnemonic.
Daniel McNulty [Thu, 6 May 2010 14:22:27 +0000 (09:22 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
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.
Daniel McNulty [Wed, 5 May 2010 19:51:06 +0000 (14:51 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
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.
Daniel McNulty [Wed, 5 May 2010 16:09:14 +0000 (11:09 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
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.
Daniel McNulty [Wed, 5 May 2010 16:00:09 +0000 (11:00 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Conflicts:
testsuite/ppc64_linux/test_info_new.gen.C
testsuite/ppc64_linux/tuples
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.
Daniel McNulty [Wed, 28 Apr 2010 17:53:20 +0000 (12:53 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
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.
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
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.
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
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