legendre [Thu, 22 Oct 2009 22:29:00 +0000 (17:29 -0500)]
Add preprocessor macro enabling optimized code gen on windows
Matthew Legendre [Thu, 22 Oct 2009 20:29:18 +0000 (15:29 -0500)]
Fix problem where testsuite sorting could be inconsistent
Matthew Legendre [Thu, 22 Oct 2009 20:26:53 +0000 (15:26 -0500)]
Fix Stackwalker Linux issues with inconsistent SIGCHLD delivery
Matthew Legendre [Thu, 22 Oct 2009 19:05:41 +0000 (14:05 -0500)]
StackwalkerAPI BlueGene/P support. This commit was written by Todd Gamblin at LLNL
Matthew Legendre [Thu, 22 Oct 2009 16:37:28 +0000 (11:37 -0500)]
More fixes for local variable support for StackwalkerAPI
Matthew Legendre [Thu, 22 Oct 2009 00:05:27 +0000 (19:05 -0500)]
Fix SymtabAPI segfault that could happen in stripped binaries
Matthew Legendre [Thu, 22 Oct 2009 00:00:15 +0000 (19:00 -0500)]
StackwalkerAPI support for reading local variables in a stack
Matthew Legendre [Wed, 21 Oct 2009 23:59:38 +0000 (18:59 -0500)]
SymtabAPI support for reading local variables in StackwalkerAPI
Matthew Legendre [Wed, 21 Oct 2009 23:58:21 +0000 (18:58 -0500)]
Add new register names to dynutil for local variable support in StackwalkerAPI
Matthew Legendre [Wed, 21 Oct 2009 23:09:32 +0000 (18:09 -0500)]
Cleanup found during testing
Matthew Legendre [Wed, 21 Oct 2009 22:36:05 +0000 (17:36 -0500)]
Fix recently introduced problem with mutatee-side trap handling
Matthew Legendre [Wed, 21 Oct 2009 22:34:28 +0000 (17:34 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Wed, 21 Oct 2009 22:33:52 +0000 (17:33 -0500)]
Enable test1_22 (function replacement) for binary rewriting
Matthew Legendre [Wed, 21 Oct 2009 22:31:17 +0000 (17:31 -0500)]
Fix problem with SymtabAPI adding binaries as library dependencies on x86_64
Matthew Legendre [Wed, 21 Oct 2009 22:30:45 +0000 (17:30 -0500)]
Allow stackwalking through instrumentation, fixes test_stack_3
Matthew Legendre [Wed, 21 Oct 2009 22:29:38 +0000 (17:29 -0500)]
Enable function replacment when binary rewriting
Madhavi Krishnan [Tue, 20 Oct 2009 18:18:09 +0000 (13:18 -0500)]
Fix for power test4_3 failure
When we detect getPC operation, we created
"arbitrary instrumentation point" at incorrect address.
This caused test4_3 failure on PPC/Linux. Fixed.
Also, adjusted size of code buffer to hold Thunk operation.
James Waskiewicz [Tue, 20 Oct 2009 03:59:12 +0000 (23:59 -0400)]
fix oops
James Waskiewicz [Tue, 20 Oct 2009 02:10:48 +0000 (22:10 -0400)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
James Waskiewicz [Tue, 20 Oct 2009 02:09:05 +0000 (22:09 -0400)]
minor cleanup, warnings...
Bill Williams [Mon, 19 Oct 2009 23:07:49 +0000 (19:07 -0400)]
IA64 crash fix: confirm that add from g1 is really from g1
James Waskiewicz [Mon, 19 Oct 2009 22:14:59 +0000 (18:14 -0400)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
James Waskiewicz [Mon, 19 Oct 2009 22:14:12 +0000 (18:14 -0400)]
windows buildfixes, serialization polishing
Madhavi Krishnan [Mon, 19 Oct 2009 20:47:45 +0000 (15:47 -0500)]
Removed printf in arch-power.C
that was printing information on getPC operation.
Bill Williams [Mon, 19 Oct 2009 18:57:25 +0000 (14:57 -0400)]
Fixed bug in delay slot handling (test 1-26 native CC, test 1-35 failures)
Bill Williams [Mon, 19 Oct 2009 17:42:43 +0000 (13:42 -0400)]
Bug fix for test 1-33 on solaris
Matthew Legendre [Fri, 16 Oct 2009 22:17:17 +0000 (17:17 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 16 Oct 2009 22:16:56 +0000 (17:16 -0500)]
Add test for writing to parameters and return values
Matthew Legendre [Fri, 16 Oct 2009 22:14:31 +0000 (17:14 -0500)]
Infrastructure and implementation for x86 to support codeGen writing to a parameter
Nathan Rosenblum [Fri, 16 Oct 2009 19:58:34 +0000 (14:58 -0500)]
Illegal instruction decoding error
Fixed error in decoding of improperly formed IA32 group 2 && 11
( /decimal opcode format) instructions. Querying the entry parameter
of such improperly decoded instructions would fail to indicate their
illegal status.
Nathan Rosenblum [Thu, 15 Oct 2009 21:50:04 +0000 (16:50 -0500)]
Enable gap parsing on supported platforms
Re-enables gap parsing on cap_stripped_binaries platforms. The
function preamble heuristics for MSVS and GCC have been split out
to decrease the rate of false positives, and the gap detection and
scanning algorithm has been cleaned up for readability.
Andrew Bernat [Fri, 16 Oct 2009 20:03:19 +0000 (15:03 -0500)]
DepGraphAPI fixes
1) InstructionAPI started using shared pointers; fix compatibility
2) Fix int vs. long usage in stackanalysis
3) Add AMD-64 build directory.
Madhavi Krishnan [Fri, 16 Oct 2009 18:39:52 +0000 (13:39 -0500)]
We were not recognizing "getPC using branch and
link to next instruction" in Power platforms. This
commit identifies and generates correct code for
the above scenario.
This fixes fork test failures on ppc32 Linux.
Also, enabling test_snip_remove in spec-grouped.pl
Matthew Legendre [Fri, 16 Oct 2009 15:53:52 +0000 (10:53 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Conflicts:
dyninstAPI/src/multiTramp.C
Matthew Legendre [Fri, 16 Oct 2009 15:50:29 +0000 (10:50 -0500)]
Warning removal and code cleanup
Matthew Legendre [Fri, 16 Oct 2009 15:46:48 +0000 (10:46 -0500)]
Code cleanup from optimization work
James Waskiewicz [Fri, 16 Oct 2009 08:41:22 +0000 (04:41 -0400)]
minor cleanup
James Waskiewicz [Fri, 16 Oct 2009 07:45:00 +0000 (03:45 -0400)]
fix conflicts. Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
dyninstAPI/src/BPatch_function.C
make.config
testsuite/i386-unknown-linux2.4/make.mutators.gen
testsuite/i386-unknown-linux2.4/tuples
testsuite/i386-unknown-nt4.0/tuples
testsuite/ia64-unknown-linux2.4/make.mutators.gen
testsuite/ia64-unknown-linux2.4/tuples
testsuite/ppc32_linux/make.mutators.gen
testsuite/ppc32_linux/tuples
testsuite/ppc64_linux/make.mutators.gen
testsuite/ppc64_linux/tuples
testsuite/rs6000-ibm-aix5.1/make.mutators.gen
testsuite/rs6000-ibm-aix5.1/tuples
testsuite/sparc-sun-solaris2.8/make.mutators.gen
testsuite/sparc-sun-solaris2.8/tuples
testsuite/sparc-sun-solaris2.9/make.mutators.gen
testsuite/sparc-sun-solaris2.9/tuples
testsuite/x86_64-unknown-linux2.4/make.mutators.gen
testsuite/x86_64-unknown-linux2.4/tuples
James Waskiewicz [Fri, 16 Oct 2009 07:30:57 +0000 (03:30 -0400)]
merge commit for serialization
Bill Williams [Thu, 15 Oct 2009 19:41:22 +0000 (14:41 -0500)]
Bug fix for process destruction, exposed by remove_snippet test.
We cannot call deleteAddressSpace safely while there are still structures (such as pendingGCInstrumentation) that depend on addressSpace-level data in line to be destroyed. Valgrind agrees with me on this.
deleteAddressSpace is now called after all process-internal data structures that we clear have been cleared & destroyed.
Bill Williams [Thu, 15 Oct 2009 16:30:18 +0000 (11:30 -0500)]
Remove some debug output.
Bill Williams [Thu, 15 Oct 2009 16:29:48 +0000 (11:29 -0500)]
Windows fix: const correctness. Not changing the public interface, but getStartAddress() really should be a const method.
Bill Williams [Wed, 14 Oct 2009 21:13:05 +0000 (16:13 -0500)]
Bug fixes for memory tests:
* Our tests expect the instpoints out of BPatch_function::getPoints to appear in address order. Fixed to guarantee this will occur.
* test_mem_4 had incorrect number of mutatee-side accesses expected. Fixed.
* return and leave were giving us incorrect numbers of bytes read. Fixed.
* Improved debugging output for memory tests.
Bill Williams [Tue, 13 Oct 2009 22:14:12 +0000 (17:14 -0500)]
Jump table fixes: added heuristic for the following table form on AMD64:
* LEA (IP relative base for jumps)
* LEA (base of offset table)
* sign-extending mov
* LEA (add base to sign-extended offset)
* jump to register
James Waskiewicz [Thu, 15 Oct 2009 11:52:21 +0000 (07:52 -0400)]
merge commit
Madhavi Krishnan [Wed, 14 Oct 2009 14:55:24 +0000 (09:55 -0500)]
Fixed typo in make.config for ppc32_linux machines
Madhavi Krishnan [Tue, 13 Oct 2009 18:02:18 +0000 (13:02 -0500)]
Added a new test case to test deletion of multiple snippets
at a single instrumentation point.
Mutatee: test_snip_remove_mutatee.c
Mutator: test_snip_remove.C
Updated spec-grouped.pl and regenerated the Makefiles.
James Waskiewicz [Tue, 13 Oct 2009 06:16:21 +0000 (02:16 -0400)]
premerge commit
Bill Williams [Mon, 12 Oct 2009 21:19:09 +0000 (16:19 -0500)]
cap_instruction_api wrapper around debug output to prevent link failure
fix for compiler warning on non-IAPI platforms
Bill Williams [Mon, 12 Oct 2009 20:19:07 +0000 (15:19 -0500)]
Bug fix: inherit return status correctly on PLT tail calls.
Matthew Legendre [Mon, 12 Oct 2009 20:29:55 +0000 (15:29 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Mon, 12 Oct 2009 20:29:28 +0000 (15:29 -0500)]
Fix for the x86_32 code gen divide operation
Matthew Legendre [Mon, 12 Oct 2009 20:28:37 +0000 (15:28 -0500)]
Fix for reading local variable values
Madhavi Krishnan [Mon, 12 Oct 2009 18:33:26 +0000 (13:33 -0500)]
Fixed typo in previous commit
Bill Williams [Mon, 12 Oct 2009 16:11:49 +0000 (11:11 -0500)]
Jump table parsing fixes
Bill Williams [Mon, 12 Oct 2009 16:11:32 +0000 (11:11 -0500)]
Extra logging for DEBUG_PARSING and DEBUG_LIVENESS enabled
Bill Williams [Mon, 12 Oct 2009 16:11:01 +0000 (11:11 -0500)]
Dead code removal.
Bill Williams [Mon, 12 Oct 2009 16:10:49 +0000 (11:10 -0500)]
ParseThat fix: instrumenting every basic block should instrument the block's first instruction, not its first memory access, since blocks may have no memory accesses.
Added support for entry/exit instrumentation to BPatch_basicBlock.
Bill Williams [Thu, 8 Oct 2009 22:44:25 +0000 (17:44 -0500)]
Correctly disambiguate signed/unsigned immediates in instruction decoding.
Bill Williams [Thu, 8 Oct 2009 22:43:37 +0000 (17:43 -0500)]
Dead code removal.
Bill Williams [Thu, 8 Oct 2009 22:43:28 +0000 (17:43 -0500)]
Bug fix for movaps table: insn after the movaps block is a branch target as well.
Bug fixes for AMD64 correctness.
Bill Williams [Thu, 8 Oct 2009 22:42:25 +0000 (17:42 -0500)]
Always check address widths when we create a new decoder.
Bill Williams [Thu, 8 Oct 2009 22:40:54 +0000 (17:40 -0500)]
Remove dead files from project.
Bill Williams [Wed, 7 Oct 2009 15:40:04 +0000 (10:40 -0500)]
Slightly more robust detection of 4-byte offsets--look for either of the sign-extending mov instructions between table insn and jump.
Bill Williams [Wed, 7 Oct 2009 15:39:20 +0000 (10:39 -0500)]
When recursing in FP write check, check callees, not the function associated with the instPoint...which is the current function.
Bill Williams [Wed, 7 Oct 2009 15:38:24 +0000 (10:38 -0500)]
Don't return null instpoints--still warn about them for debugging purposes though.
Bill Williams [Tue, 6 Oct 2009 19:55:29 +0000 (14:55 -0500)]
TEMP: Safety check for bad decodes w/NULL entry.
Madhavi Krishnan [Mon, 12 Oct 2009 16:04:23 +0000 (11:04 -0500)]
Fixed typo in previous commit
Madhavi Krishnan [Mon, 12 Oct 2009 15:57:49 +0000 (10:57 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Madhavi Krishnan [Mon, 12 Oct 2009 15:56:09 +0000 (10:56 -0500)]
Fixes for ppc32_linux machines:
1) Add -ldl flag for compiling mutatees - as internal dlopen function in
glibc is not found.
2) asm/page.h is deprecated - use getpagesize() instead for PAGE_SIZE
Matthew Legendre [Mon, 12 Oct 2009 04:16:32 +0000 (23:16 -0500)]
Fix race condition segfault on mutator exit
Matthew Legendre [Mon, 12 Oct 2009 04:15:56 +0000 (23:15 -0500)]
Fix IA-64/Sparc assert failure in codeGen
Matthew Legendre [Mon, 12 Oct 2009 04:15:17 +0000 (23:15 -0500)]
Add getLoadAddress to SymtabAPI, supports non-PIC code optimizations
Matthew Legendre [Mon, 12 Oct 2009 04:13:20 +0000 (23:13 -0500)]
Fix for accessing uninitialized memory
Matthew Legendre [Mon, 12 Oct 2009 04:11:52 +0000 (23:11 -0500)]
Optimizations for non-PIC binary rewriting, fixes for binary rewriting func calls
Matthew Legendre [Fri, 9 Oct 2009 20:54:03 +0000 (15:54 -0500)]
Add -noclean option to testsuite
Matthew Legendre [Fri, 9 Oct 2009 20:52:12 +0000 (15:52 -0500)]
Code cleanup
Matthew Legendre [Fri, 9 Oct 2009 20:48:28 +0000 (15:48 -0500)]
Fix race condition fault in async handling
Matthew Legendre [Fri, 9 Oct 2009 20:47:44 +0000 (15:47 -0500)]
Fix fault in parsing
Matthew Legendre [Fri, 9 Oct 2009 20:44:52 +0000 (15:44 -0500)]
x86 and x86_64 code optimizations
Matthew Legendre [Fri, 9 Oct 2009 20:37:27 +0000 (15:37 -0500)]
Remove dead code from InstructionAPI work
Matthew Legendre [Fri, 9 Oct 2009 20:35:28 +0000 (15:35 -0500)]
Add BPatch option to force on stack frames
James Waskiewicz [Thu, 8 Oct 2009 21:27:53 +0000 (17:27 -0400)]
Fix conflicts. Merge branch 'master' of git.dyninst.org:/pub/dyninst
Conflicts:
dyninstAPI/rs6000-ibm-aix5.1/Makefile
make.config
symtabAPI/src/Aggregate.C
testsuite/i386-unknown-nt4.0/tuples
James Waskiewicz [Thu, 8 Oct 2009 21:22:24 +0000 (17:22 -0400)]
more serialization stuff
Todd Frederick [Wed, 7 Oct 2009 19:57:54 +0000 (14:57 -0500)]
Fix Solaris typo
Todd Frederick [Wed, 7 Oct 2009 19:24:44 +0000 (14:24 -0500)]
Fix testsuite build on AIX.
Todd Frederick [Wed, 7 Oct 2009 17:40:57 +0000 (12:40 -0500)]
Fix testsuite build issue on Solaris
Todd Frederick [Tue, 6 Oct 2009 21:16:15 +0000 (16:16 -0500)]
Fix syscall identification on x86, fix null stubs on other platforms.
Todd Frederick [Tue, 6 Oct 2009 20:46:38 +0000 (15:46 -0500)]
Add isSyscall stubs for non-implemented platforms
Todd Frederick [Tue, 6 Oct 2009 20:14:16 +0000 (15:14 -0500)]
Merge branch 'master' into testing
Matthew Legendre [Tue, 6 Oct 2009 19:46:03 +0000 (14:46 -0500)]
More fixes for bug 1030--bad alignment errors when rewriting
Todd Frederick [Tue, 6 Oct 2009 19:26:59 +0000 (14:26 -0500)]
Merge branch 'master' into testing
Bill Williams [Tue, 6 Oct 2009 16:44:47 +0000 (11:44 -0500)]
Bug fix to bug fix for bug 1034: we want to analyze the liveness of FPRs in the *instrumented* function, so start them live.
We want to analyze whether the *instrumentation* function writes FPRs. Our recursive algorithm was behaving incorrectly, which was causing us to assume all instrumentation wrote to the FPRs.
Bill Williams [Tue, 6 Oct 2009 16:42:31 +0000 (11:42 -0500)]
Autoconf fix: wrong variables used for ICC/ICPC.
Todd Frederick [Tue, 6 Oct 2009 14:58:24 +0000 (09:58 -0500)]
Merge branch 'master' into testing
James Waskiewicz [Tue, 6 Oct 2009 05:59:00 +0000 (01:59 -0400)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst
James Waskiewicz [Tue, 6 Oct 2009 05:57:43 +0000 (01:57 -0400)]
bug 1030: check for and attempt to fix issues with alignment related fields in
the elf header structs. Left things noisy for the moment so others may look over the
fixes easier.
Bill Williams [Mon, 5 Oct 2009 23:08:36 +0000 (18:08 -0500)]
Fix for bug 1035: fxsave incorrectly emitted when we don't need it. FPU register liveness, due to the register stack nature, is overapproximated via "does this function contain a write to the FP stack". This requires that we initially treat the FP stack as dead, and set it to live if we find that it's written to.
Note that while the MM0-MM7 registers overlap with the FPU registers, we check them for liveness using the ordinary algorithm, and so they are initialized to "live". If any of them, or the virtual FP stack register, is live, we'll emit a fxsave/fxrestore pair.
Bill Williams [Mon, 5 Oct 2009 20:42:47 +0000 (15:42 -0500)]
Added heuristic to look for the movslq sign-extending move that signifies that an AMD64 jump table likely has 32-bit entries
Bill Williams [Mon, 5 Oct 2009 19:03:02 +0000 (14:03 -0500)]
AIX build fix (pdvector vs. std::vector)