Dan McNulty [Tue, 22 Jun 2010 18:30:14 +0000 (13:30 -0500)]
First pass at thread_db integration for FreeBSD.
Also, made some updates so the single thread tests still pass.
This includes new classes that are derived from int_process and int_thread,
thread_db_process and thread_db_thread. freebsd_process and freebsd_thread now
derive from the thread_db classes. The integration includes changes to the
FreeBSD generator and decoder to handle the new events provided by
thread_db.
Small fixes for static binaries in FreeBSD-specific AddressTranslate code.
Dan McNulty [Mon, 14 Jun 2010 15:49:56 +0000 (10:49 -0500)]
Implemented iRPC snippets for FreeBSD amd64.
Dan McNulty [Fri, 11 Jun 2010 20:55:02 +0000 (15:55 -0500)]
Moved around iRPC mmap snippet handling to be used by both Linux and FreeBSD.
Implemented mmap snippets for FreeBSD.
Turned off pc_fork, pc_fork_exec tests for FreeBSD.
Dan McNulty [Thu, 10 Jun 2010 14:46:38 +0000 (09:46 -0500)]
Fixes for RT library on FreeBSD x86
Dan McNulty [Wed, 9 Jun 2010 21:04:16 +0000 (16:04 -0500)]
Progress on ProcControlAPI for FreeBSD.
tests pc_breakpoint, pc_launch, pc_library, pc_singlestep pass for
single and multiple processes.
Fixed minor bugs in AddressTranslation.
Implemented a chunk of functionality for FreeBSD (includes register
access). Factored some code from linux.C to process.C to implement
register stuff.
Fixed minor bugs in testsuite for proccontrol testsuite.
Daniel McNulty [Mon, 7 Jun 2010 15:11:23 +0000 (10:11 -0500)]
Merge branch 'master' into bsd
Conflicts:
common/src/addrtranslate-sysv.h
proccontrol/src/sysv.C
symtabAPI/src/emitElf.C
testsuite/i386-unknown-linux2.4/tuples
testsuite/i386-unknown-nt4.0/tuples
testsuite/ia64-unknown-linux2.4/tuples
testsuite/ppc32_linux/tuples
testsuite/ppc64_linux/tuples
testsuite/rs6000-ibm-aix5.1/tuples
testsuite/sparc-sun-solaris2.8/tuples
testsuite/sparc-sun-solaris2.9/tuples
testsuite/src/dyninst/test1.h
testsuite/x86_64-unknown-linux2.4/tuples
Dan McNulty [Fri, 4 Jun 2010 21:28:14 +0000 (16:28 -0500)]
Further refactoring of AddressTranslate for FreeBSD
A newly created process doesn't have the DT_DEBUG field populated, so
changes were made to lazily parse this field. However, the trap address
needs to be known immediately after an AddressTranslator is created.
Luckily on FreeBSD, there is a symbol in the dynamic linker for the trap
address.
If DT_DEBUG is unavailable, the trap address is parsed from the dynamic
linker. If DT_DEBUG is available, the trap address is parsed from the
r_debug structure.
Consequently, to parse the dynamic linker, we need to know its base
load address in memory. This can be retrieved from memory maps. This
has been implemented for FreeBSD and doesn't require procfs. This
required some refactoring of the existing memory map parsing support
on Linux.
On another note, plat_install in ProcControlAPI was factored to
sysv.C because the functionality is the same on both Linux and FreeBSD.
Dan McNulty [Thu, 3 Jun 2010 21:05:11 +0000 (16:05 -0500)]
Refactor AddressTranslator code to support FreeBSD.
The existing support for System V platforms doesn't work on FreeBSD.
Implemented a new way to get r_debug structure on FreeBSD. Factored
out existing System V support that doesn't work on FreeBSD.
Matthew Legendre [Thu, 3 Jun 2010 20:20:03 +0000 (15:20 -0500)]
Fix issue where ProcControlAPI was not properly including libelf, removed build dependency on SymtabAPI
Matthew Legendre [Thu, 3 Jun 2010 20:02:08 +0000 (15:02 -0500)]
Fix ProcControlAPI race condition where a signal hitting the process during a specific part of RPC setup/teardown would hang the thread.
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
Dan McNulty [Wed, 26 May 2010 19:30:11 +0000 (14:30 -0500)]
Mutatee traps implementation copied from Linux.
However, mutatee traps currently do not work when enabled so they are
disabled for now.
Bill Williams [Wed, 26 May 2010 17:35:03 +0000 (12:35 -0500)]
Bug fixes for FP liveness, part 2.
Dan McNulty [Tue, 25 May 2010 19:22:29 +0000 (14:22 -0500)]
Enabled init/fini callbacks for FreeBSD.
Implemented multithread capability test for static binaries on FreeBSD.
Factored some code to share between Linux and FreeBSD.
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.
Daniel McNulty [Tue, 25 May 2010 18:06:35 +0000 (13:06 -0500)]
Enabled init_fini test for FreeBSD.
Dan McNulty [Tue, 25 May 2010 16:18:51 +0000 (11:18 -0500)]
RT library now extracts thread information on FreeBSD.
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
Dan McNulty [Mon, 24 May 2010 20:31:56 +0000 (15:31 -0500)]
Working on RT library for FreeBSD.
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
Daniel McNulty [Thu, 20 May 2010 20:14:10 +0000 (15:14 -0500)]
Turning off 32-bit ABI support on FreeBSD 64-bit.
There appears to be some problems with 32-bit ABI support such as
constants like ULONG_MAX not being changed for the 32-bit ABI.
Daniel McNulty [Thu, 20 May 2010 19:39:23 +0000 (14:39 -0500)]
Fixing 32/64 ABI configuration in testsuite for FreeBSD 64-bit.
Dan McNulty [Thu, 20 May 2010 19:19:12 +0000 (14:19 -0500)]
FreeBSD 64-bit binary rewriter -- a few testsuite tests pass.
Matthew Legendre [Thu, 20 May 2010 17:05:23 +0000 (12:05 -0500)]
Add autoconf options for using icc and pgcc in testsuite
Daniel McNulty [Thu, 20 May 2010 02:39:24 +0000 (21:39 -0500)]
Testsuite generated files for amd64 FreeBSD
Dan McNulty [Thu, 20 May 2010 02:26:36 +0000 (21:26 -0500)]
Adding 64-bit FreeBSD build directories.
Dan McNulty [Wed, 19 May 2010 21:10:31 +0000 (16:10 -0500)]
Bugfixes for binary rewriter. Small changes to proccontrol.
Enables the testsuite for proccontrol.
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
Dan McNulty [Mon, 17 May 2010 17:22:38 +0000 (12:22 -0500)]
Fixed a bug in modifying the heap symbols on FreeBSD.
The updateSymbols function was being called when the strtab section was
encountered. In stripped binaries, this section doesn't exist. Moved
the update of dynamic symbols (in .dynsym) to better location.
Also, some build fixes from the previou merge.
Daniel McNulty [Mon, 17 May 2010 15:15:53 +0000 (10:15 -0500)]
Merge branch 'master' into bsd
Conflicts:
symtabAPI/src/emitElf.C
testsuite/i386-unknown-linux2.4/tuples
testsuite/i386-unknown-nt4.0/tuples
testsuite/ia64-unknown-linux2.4/tuples
testsuite/ppc32_linux/tuples
testsuite/ppc64_linux/tuples
testsuite/rs6000-ibm-aix5.1/tuples
testsuite/sparc-sun-solaris2.8/tuples
testsuite/sparc-sun-solaris2.9/tuples
testsuite/x86_64-unknown-linux2.4/tuples
Dan McNulty [Mon, 17 May 2010 14:58:16 +0000 (09:58 -0500)]
More work to port ProcControlAPI to FreeBSD.
Getting binary rewriter working on FreeBSD 7.2. This includes
creating platform specific directories for FreeBSD 7.2. Also includes
some bug fixes for bugs exposed by switching to FreeBSD 7.2.
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.
Dan McNulty [Mon, 3 May 2010 20:17:57 +0000 (15:17 -0500)]
The beginnings of port of ProcControlAPI to FreeBSD. Also, Build fixes for previous merge.