Matthew Legendre [Thu, 3 Jun 2010 19:59:45 +0000 (14:59 -0500)]
Fix ProcControlAPI issue where continuing a stopped thread that had a running rpc on it incorrectly returned an error.
Andrew Bernat [Thu, 3 Jun 2010 16:13:23 +0000 (11:13 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Thu, 3 Jun 2010 16:05:46 +0000 (11:05 -0500)]
Replaced custom R-B tree with a wrapper around std::map; fixes a pernicious bug in removal and insertion.
Bill Williams [Wed, 2 Jun 2010 17:06:55 +0000 (12:06 -0500)]
Bug fix: enable-testsuite was using the wrong variable for our Makefile's test suite control.
Bill Williams [Wed, 2 Jun 2010 15:26:57 +0000 (10:26 -0500)]
Bug fix: avoid infinite loop when iterating over binEdits. Bug introduced when fixing compiler warning.
--bw
Bill Williams [Wed, 2 Jun 2010 00:31:43 +0000 (19:31 -0500)]
Windows fixes: fix two warnings from unsafe variable name reuse, re-enable hack for finding loadsnstores.
Bill Williams [Fri, 28 May 2010 20:37:22 +0000 (15:37 -0500)]
Jump table fixes for Windows:
* Our zeroAllRegisters visitor should not zero the IP, just the GPRs. Fixed.
* isOffsetInRegion and findEnclosingRegion do not match memory/disk on Windows. This led to us misinterpreting jump table targets as invalid. Replaced isOffsetInRegion with explicit getRegionAddr/getRegionSize calls to mimic the findEnclosingRegion behavior.
Bill Williams [Fri, 28 May 2010 18:28:39 +0000 (13:28 -0500)]
Make mutatee C compliant.
Bill Williams [Thu, 27 May 2010 20:48:02 +0000 (15:48 -0500)]
Test suite fixes: added debugging output to test1_20 so that we can see what instructions we're instrumenting. This requires linking the test1_20 mutator against libInstructionAPI, which in turn required a spec change.
Bill Williams [Thu, 27 May 2010 20:46:56 +0000 (15:46 -0500)]
Fix typo in XMM1 name.
Bill Williams [Thu, 27 May 2010 20:46:47 +0000 (15:46 -0500)]
Don't use a scratch register for emitting AMD64 static mode calls; enables call replacement even with no free registers.
Matthew Legendre [Wed, 26 May 2010 23:39:05 +0000 (18:39 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Wed, 26 May 2010 23:36:09 +0000 (18:36 -0500)]
Disable pgcc and icc tests in 32 bit mode on x86_64
Bill Williams [Wed, 26 May 2010 21:44:17 +0000 (16:44 -0500)]
Build fix for VC2003: ensure that everything goes through the test_pid_t typedef, with explicit casts if needed.
Andrew Bernat [Wed, 26 May 2010 20:51:37 +0000 (15:51 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Wed, 26 May 2010 20:48:10 +0000 (15:48 -0500)]
Fix an error in emitting symbol versions
Andrew Bernat [Wed, 26 May 2010 20:47:57 +0000 (15:47 -0500)]
Make liveness respect system calls
Matthew Legendre [Wed, 26 May 2010 20:42:40 +0000 (15:42 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Wed, 26 May 2010 20:42:11 +0000 (15:42 -0500)]
Fix problem with ProcControlAPI not finding interpreter when linked with libelf.so.1
Bill Williams [Wed, 26 May 2010 17:35:03 +0000 (12:35 -0500)]
Bug fixes for FP liveness, part 2.
Matthew Legendre [Tue, 25 May 2010 19:09:29 +0000 (14:09 -0500)]
pgcc built mutatees weren't exporting some expected symbols, causing tests to fail.
Bill Williams [Mon, 24 May 2010 20:26:35 +0000 (15:26 -0500)]
Bug fix for FP liveness in test 1-20 (ICC).
Bill Williams [Mon, 24 May 2010 16:32:36 +0000 (11:32 -0500)]
"make nightly" should build "all", not "DyninstAPI".
Bill Williams [Mon, 24 May 2010 16:29:00 +0000 (11:29 -0500)]
Add InstructionAPI to AIX64 makefile; fix compiler error in Archive-xcoff on AIX64.
Matthew Legendre [Mon, 24 May 2010 20:45:54 +0000 (15:45 -0500)]
Pushing file missed in last commit, fixing memory problems
Matthew Legendre [Mon, 24 May 2010 20:29:00 +0000 (15:29 -0500)]
Fix bug in test1_2 when built with pgCC
Disable test5_7 and test5_9 on pgCC and we don't have support for their template name demangling
Matthew Legendre [Mon, 24 May 2010 18:18:46 +0000 (13:18 -0500)]
Fix memory corruption in testsuite and binary rewriting
Matthew Legendre [Mon, 24 May 2010 16:42:53 +0000 (11:42 -0500)]
Fix problem with runTests failing if . was not in path
Andrew Bernat [Fri, 21 May 2010 19:00:26 +0000 (14:00 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
instructionAPI/src/Operation.C
Andrew Bernat [Fri, 21 May 2010 18:59:23 +0000 (13:59 -0500)]
Slicing tweaks
Conflicts:
symEval/h/slicing.h
symEval/src/slicing.C
Andrew Bernat [Thu, 22 Apr 2010 17:31:53 +0000 (12:31 -0500)]
Collected main-line fixes
1) Fix instruction::generateMem and new IAPI parsing internals
2) Tail call interaction with non-returning calls fixed
3) Shared code shares non-instrumentable status
4) Add C++ argument and PLT registers to liveness calculations
5) Stack analysis assumed branches were calls
6) IAPI: adding a successor doesn't create an Operand for fallthroughs
7) IAPI: REP prefix has implicit register usage
8) Symtab: Skip known outlined code blocks in IA32/AMD64 libc
Matthew Legendre [Thu, 20 May 2010 22:20:45 +0000 (17:20 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
legendre [Thu, 20 May 2010 22:19:02 +0000 (17:19 -0500)]
Windows fixes for testsuite
Matthew Legendre [Thu, 20 May 2010 20:23:22 +0000 (15:23 -0500)]
Allow parallel runs of testsuite
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 [Wed, 19 May 2010 16:42:45 +0000 (11:42 -0500)]
Fix warnings in ProcControlAPI build
Matthew Legendre [Wed, 19 May 2010 16:42:19 +0000 (11:42 -0500)]
Fix issue in ProcControlAPI detach and terminate
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