dyninst.git
9 years agoPick up libraries from install directory.
Bill Williams [Thu, 19 Aug 2010 17:17:37 +0000 (12:17 -0500)]
Pick up libraries from install directory.

9 years agoTest suite should include from INCLUDE_DEST, not hardcoded path.
Bill Williams [Thu, 19 Aug 2010 17:04:24 +0000 (12:04 -0500)]
Test suite should include from INCLUDE_DEST, not hardcoded path.

9 years agoAdd dependencies to top-level makefile; make parseAPI link with libs out of build...
Bill Williams [Thu, 19 Aug 2010 16:56:45 +0000 (11:56 -0500)]
Add dependencies to top-level makefile; make parseAPI link with libs out of build directories.

9 years agoRemove references to pdstring and rename string files to string-regex.[hC] to reflect...
Bill Williams [Tue, 17 Aug 2010 21:28:23 +0000 (16:28 -0500)]
Remove references to pdstring and rename string files to string-regex.[hC] to reflect their remaining legacy purpose.

9 years agoFix for IP-relative 32-bit jump tables with subtracted offsets (gcc 4.x generated)
Bill Williams [Tue, 17 Aug 2010 16:52:39 +0000 (11:52 -0500)]
Fix for IP-relative 32-bit jump tables with subtracted offsets (gcc 4.x generated)

9 years agoAssorted Windows build cleanup per bug 1077:
Bill Williams [Tue, 17 Aug 2010 15:29:17 +0000 (10:29 -0500)]
Assorted Windows build cleanup per bug 1077:

* Change output directories to reduce number of post-build steps
* Reduce warning spam--disable truncated identifier and secure C Runtime warnings
* bind() to root namespace to disambiguate
* Add DIA SDK include directory to Dyninst/Symtab projects

9 years agoFix for Windows memory tests:
Bill Williams [Mon, 16 Aug 2010 21:56:52 +0000 (16:56 -0500)]
Fix for Windows memory tests:
* 4 extra stores compared to Linux, due to output in Windows using a call
* Updated reductions and total accesses to reflect above

9 years agoAdded SI and DI implicit writes to string instructions.
Bill Williams [Thu, 12 Aug 2010 22:13:35 +0000 (17:13 -0500)]
Added SI and DI implicit writes to string instructions.

9 years agoMerge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst
Bill Williams [Thu, 12 Aug 2010 20:53:37 +0000 (15:53 -0500)]
Merge branch 'master' of ssh://bill@git.dyninst.org/pub/dyninst

Conflicts:
testsuite/i386-unknown-linux2.4/tuples
testsuite/i386-unknown-nt4.0/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

9 years agoMore Windows genfile fixes.
Bill Williams [Thu, 12 Aug 2010 20:35:59 +0000 (15:35 -0500)]
More Windows genfile fixes.

9 years ago* Bug fix for Windows genfiles
Bill Williams [Thu, 12 Aug 2010 18:14:09 +0000 (13:14 -0500)]
* Bug fix for Windows genfiles
* Add PIC command lines for Portland Group, Intel, gfortran compilers

9 years agoChanged check for program headers restriction to be encapsulated by a
Dan McNulty [Thu, 12 Aug 2010 14:28:19 +0000 (09:28 -0500)]
Changed check for program headers restriction to be encapsulated by a
function and a bug definition instead of an os ifdef.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Wed, 11 Aug 2010 22:22:55 +0000 (17:22 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

Conflicts:
testsuite/i386-unknown-linux2.4/tuples
testsuite/i386-unknown-nt4.0/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

9 years agoAdd parameters to async_printf call to avoid crashing.
Bill Williams [Wed, 11 Aug 2010 19:30:51 +0000 (14:30 -0500)]
Add parameters to async_printf call to avoid crashing.

9 years agoAdd -pic option to test_driver for proper control of PIC mutatees.
Bill Williams [Wed, 11 Aug 2010 21:16:52 +0000 (16:16 -0500)]
Add -pic option to test_driver for proper control of PIC mutatees.

9 years agoAdd -fPIC dimension to test suite.
Bill Williams [Wed, 11 Aug 2010 19:30:29 +0000 (14:30 -0500)]
Add -fPIC dimension to test suite.

9 years agoFix for rewriting static binaries on FreeBSD.
Dan McNulty [Wed, 11 Aug 2010 21:25:00 +0000 (16:25 -0500)]
Fix for rewriting static binaries on FreeBSD.

Static binaries do not always have a TLS program header on FreeBSD.
When linking in a library that has TLS, a TLS program header needs
to be created in the rewritten binary.

9 years agoInitial support for FreeBSD.
Daniel McNulty [Wed, 11 Aug 2010 20:34:42 +0000 (15:34 -0500)]
Initial support for FreeBSD.

This commit serves as a marker for when the initial FreeBSD changes
were merged with git-head. Please see previous commits for
further descriptions of changes.

The initial support for FreeBSD includes a working binary rewriter
and an almost complete port of ProcControlAPI ( I have observed
some race conditions for the iRPC test when working on multithreaded
debuggees ).

It also removes the FreeBSD 8.0 build directories and support in the testsuite
for FreeBSD 8.0, as the initial support was only tested on FreeBSD 7.2.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Wed, 11 Aug 2010 20:03:51 +0000 (15:03 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoCommit: Fix recursive parsing
Madhavi Krishnan [Wed, 11 Aug 2010 19:59:22 +0000 (14:59 -0500)]
Commit: Fix recursive parsing

Rewriting libpython caused recursive parsing and hence an assert
in ppc32_linux. This commit fixes the recursive parsing by replacing
img() - that triggers parsing- with img_.

9 years agoFix for bug in 64-bit Elf emitter.
Dan McNulty [Wed, 11 Aug 2010 19:22:41 +0000 (14:22 -0500)]
Fix for bug in 64-bit Elf emitter.

9 years agoFixes for rewriter on FreeBSD for problems introduced by previous merge.
Dan McNulty [Wed, 11 Aug 2010 16:41:35 +0000 (11:41 -0500)]
Fixes for rewriter on FreeBSD for problems introduced by previous merge.

The library_adjust mechanism was incorrectly modified during the merge.

Also includes a build fix for FreeBSD/x86_64.

9 years agoMerge branch 'master' of ssh://mcnulty@wasabi.cs.wisc.edu/p/paradyn/development/mcnul...
Dan McNulty [Wed, 11 Aug 2010 14:29:58 +0000 (09:29 -0500)]
Merge branch 'master' of ssh://mcnulty@wasabi.cs.wisc.edu/p/paradyn/development/mcnulty/d0/dyninst

9 years agoFix for bug 1064 - instrumentation of malloc in libc causes seg. fault.
Daniel McNulty [Tue, 10 Aug 2010 21:46:05 +0000 (16:46 -0500)]
Fix for bug 1064 - instrumentation of malloc in libc causes seg. fault.

The relocations for inter-module variable references/function calls included in
instrumentation were being generated incorrectly for shared libraries that have
a non-zero load offset. A notable example of a library that has this
characteristic is libc. The problem was the address stored in the relocation
was decreased by the library's load offset. This is incorrect because the
address stored in a relocation for a shared library is a base virtual address,
not an offset.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Tue, 10 Aug 2010 21:40:40 +0000 (16:40 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

Conflicts:
dyninstAPI/src/linux.C

findCallee has been moved to unix.C to be shared by both FreeBSD
and Linux.

9 years agoSmall fix in ELF emitter.
Daniel McNulty [Tue, 10 Aug 2010 16:35:13 +0000 (11:35 -0500)]
Small fix in ELF emitter.

9 years agoShared code inst point fixes
Madhavi Krishnan [Tue, 10 Aug 2010 16:19:53 +0000 (11:19 -0500)]
Shared code inst point fixes

This commit fixes issues with
multiple instpoints at the same
address (shared code). This fixes
the bug with rewriting libc on ppc32_linux.

9 years agoModify compilation streamlining - set VERBOSE_COMPILATION environment variable to...
Andrew Bernat [Tue, 10 Aug 2010 15:16:25 +0000 (10:16 -0500)]
Modify compilation streamlining - set VERBOSE_COMPILATION environment variable to turn it off.

9 years agoFixes for address translation, binary rewriter, and compiler warnings for ProcControl.
Daniel McNulty [Tue, 10 Aug 2010 03:23:35 +0000 (22:23 -0500)]
Fixes for address translation, binary rewriter, and compiler warnings for ProcControl.

9 years agoMerge branch 'master' of ssh://mcnulty@wasabi.cs.wisc.edu/p/paradyn/development/mcnul...
Dan McNulty [Mon, 9 Aug 2010 20:10:47 +0000 (15:10 -0500)]
Merge branch 'master' of ssh://mcnulty@wasabi.cs.wisc.edu/p/paradyn/development/mcnulty/d0/dyninst

9 years agoBuild fixes for FreeBSD related to previous merge of ParseAPI changes.
Dan McNulty [Mon, 9 Aug 2010 20:09:44 +0000 (15:09 -0500)]
Build fixes for FreeBSD related to previous merge of ParseAPI changes.

Also includes some small changes to emitElf* code.

9 years agoFix warnings in AST subclasses; rename DataflowAPI init_debug to avoid conflicts.
Andrew Bernat [Mon, 9 Aug 2010 18:47:01 +0000 (13:47 -0500)]
Fix warnings in AST subclasses; rename DataflowAPI init_debug to avoid conflicts.

9 years agoUpdated generated testsuite files for FreeBSD
Daniel McNulty [Mon, 9 Aug 2010 15:05:25 +0000 (10:05 -0500)]
Updated generated testsuite files for FreeBSD

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Mon, 9 Aug 2010 15:04:15 +0000 (10:04 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

Conflicts:
testsuite/i386-unknown-linux2.4/tuples
testsuite/i386-unknown-nt4.0/tuples
testsuite/x86_64-unknown-linux2.4/tuples

9 years agoAdd parseAPI dependence so that make parallelizes correctly; tidy AIX build lines...
Andrew Bernat [Fri, 6 Aug 2010 21:09:29 +0000 (16:09 -0500)]
Add parseAPI dependence so that make parallelizes correctly; tidy AIX build lines in RT lib.

9 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 6 Aug 2010 21:00:52 +0000 (16:00 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

9 years agoAdded test source file
Bill Williams [Fri, 6 Aug 2010 20:58:39 +0000 (15:58 -0500)]
Added test source file

9 years agoStreamline compilation output
Andrew Bernat [Wed, 4 Aug 2010 15:15:20 +0000 (10:15 -0500)]
Streamline compilation output

9 years agoFix for missing fucompp instruction; test added.
Bill Williams [Fri, 6 Aug 2010 18:01:29 +0000 (13:01 -0500)]
Fix for missing fucompp instruction; test added.

9 years agoBug fix: incorrect comparison in codeGen::fill().
Bill Williams [Fri, 6 Aug 2010 17:04:46 +0000 (12:04 -0500)]
Bug fix: incorrect comparison in codeGen::fill().

9 years agoFilter the SP and direct PC inputs out of a call's PC assignment.
Bill Williams [Fri, 6 Aug 2010 17:04:03 +0000 (12:04 -0500)]
Filter the SP and direct PC inputs out of a call's PC assignment.

9 years agofinish converting to DataflowAPI namespace
Todd Frederick [Wed, 4 Aug 2010 18:48:55 +0000 (13:48 -0500)]
finish converting to DataflowAPI namespace

9 years agofix parallel make for parseAPI
Todd Frederick [Wed, 4 Aug 2010 16:53:22 +0000 (11:53 -0500)]
fix parallel make for parseAPI

9 years agoMerge branch 'master' into devel
Todd Frederick [Wed, 4 Aug 2010 16:06:20 +0000 (11:06 -0500)]
Merge branch 'master' into devel

Conflicts:
dataflowAPI/h/Absloc.h
dataflowAPI/src/RoseInsnFactory.C

9 years agosymEval: accessor for generator of an AbsRegion
Todd Frederick [Wed, 4 Aug 2010 15:33:40 +0000 (10:33 -0500)]
symEval: accessor for generator of an AbsRegion

9 years agoCreate new stack frame when getScratchRegister fails.
Madhavi Krishnan [Thu, 29 Jul 2010 20:27:11 +0000 (15:27 -0500)]
Create new stack frame when getScratchRegister fails.

In power platforms, while relocating Thunk code or
emitting load and store shared code outside of baseTramp,
getScratchRegister may fail when there are no free registers.
When there are no free registers, we create a new stack frame,
push register values on the stack and create free registers.

After the operation, we tear down the stack and restore the original
values of the registers.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Daniel McNulty [Thu, 29 Jul 2010 18:30:04 +0000 (13:30 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoMiscellaneous build fixes for previous merge.
Daniel McNulty [Thu, 29 Jul 2010 18:15:30 +0000 (13:15 -0500)]
Miscellaneous build fixes for previous merge.

9 years agoMerge branch 'bsd'
Daniel McNulty [Wed, 28 Jul 2010 21:33:34 +0000 (16:33 -0500)]
Merge branch 'bsd'

Conflicts:
common/h/arch-x86.h
common/ia64-unknown-linux2.4/Makefile
common/x86_64-unknown-linux2.4/Makefile
dataflowAPI/h/stackanalysis.h
dyninstAPI/src/codegen-x86.C
dyninstAPI/src/codegen.h
dyninstAPI/src/image-flowGraph.C
dyninstAPI/src/linux-x86.C
dyninstAPI/src/symtab.h
dyninstAPI/src/unix.C
parseThat/Makefile.in
proccontrol/src/linux.C
symtabAPI/make.module.tmpl
symtabAPI/src/Object-elf.C
symtabAPI/src/Object-elf.h
symtabAPI/src/emitElf-64.C
symtabAPI/src/emitElf.C
testsuite/Makefile
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

9 years agoFix rewriter crashes(2)
Madhavi Krishnan [Wed, 28 Jul 2010 19:44:32 +0000 (14:44 -0500)]
Fix rewriter crashes(2)

We're being overly aggressive in marking functions
uninstrumentable. We mark functions with both unresolved calls
and branches as uninstrumentable, but only unresolved branches should be
marked. This commit sets a variable for unresolved
branches and checks it before marking the function uninstrumentable.

9 years agoContinued work towards getting iRPC test passing on FreeBSD.
Dan McNulty [Wed, 28 Jul 2010 17:11:45 +0000 (12:11 -0500)]
Continued work towards getting iRPC test passing on FreeBSD.

Added bug definitions for FreeBSD process control-related bugs.

Added a new event ChangePCStop to help workaround bug_freebsd_change_pc.
See the code for a description of this bug.

Changed exec handling to use kqueue/kevent so SIGTRAPs sent by other
processes or users do not get classified as exec's. Removed assert in
SIGSTOP handling for similar reason.

Added some preliminary code for handling forks. This cannot currently
be tested because fork events are never generated on FreeBSD.

Did code cleanup to improve readability.

Changed some code in ProcControl testsuite (some changes are temporary).

9 years agoFix for rewriter crashes in x86
Madhavi Krishnan [Wed, 28 Jul 2010 16:37:01 +0000 (11:37 -0500)]
Fix for rewriter crashes in x86

Fixed the following:
1) Incorrect merge in my previous commit in emitElf.C
2) String manipulation of comment section in Object-elf.C

9 years agoFixed testsuite's error handling of test timeouts
Kevin Roundy [Tue, 27 Jul 2010 23:36:28 +0000 (18:36 -0500)]
Fixed testsuite's error handling of test timeouts

9 years agoFixed testsuite error handling of test timeouts
Kevin Roundy [Tue, 27 Jul 2010 23:34:26 +0000 (18:34 -0500)]
Fixed testsuite error handling of test timeouts

9 years agoFixed testsuite error handling
unknown [Tue, 27 Jul 2010 23:15:28 +0000 (18:15 -0500)]
Fixed testsuite error handling

9 years agoFix for Symtab on AIX
Madhavi Krishnan [Mon, 26 Jul 2010 16:00:59 +0000 (11:00 -0500)]
Fix for Symtab on AIX

Missed a ELF specific function definition on AIX.

9 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
Madhavi Krishnan [Mon, 26 Jul 2010 15:58:54 +0000 (10:58 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

9 years agoFix compile error
Andrew Bernat [Mon, 26 Jul 2010 15:08:03 +0000 (10:08 -0500)]
Fix compile error

9 years agoMerges DataflowAPI and ParseAPI Visual Studio projects
Kevin Roundy [Fri, 23 Jul 2010 21:55:12 +0000 (16:55 -0500)]
Merges DataflowAPI and ParseAPI Visual Studio projects

Does this to build a single dll out of both projects

9 years agoRemove dataflowAPI build directories
Andrew Bernat [Fri, 23 Jul 2010 21:19:58 +0000 (16:19 -0500)]
Remove dataflowAPI build directories

9 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 23 Jul 2010 21:10:57 +0000 (16:10 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

9 years agoFix binary rewriter symbol addition mechanism
Andrew Bernat [Fri, 23 Jul 2010 21:08:00 +0000 (16:08 -0500)]
Fix binary rewriter symbol addition mechanism

9 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 23 Jul 2010 19:57:46 +0000 (14:57 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

9 years agoFixes to BGP rewriter
Madhavi Krishnan [Fri, 23 Jul 2010 19:11:59 +0000 (14:11 -0500)]
Fixes to BGP rewriter

Some changes I missed to commit last time.

9 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 23 Jul 2010 19:00:58 +0000 (14:00 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

9 years agoDon't try to build dataflowAPI by accident; install its headers from parseAPI
Andrew Bernat [Fri, 23 Jul 2010 19:00:50 +0000 (14:00 -0500)]
Don't try to build dataflowAPI by accident; install its headers from parseAPI

9 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 23 Jul 2010 18:39:00 +0000 (13:39 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

9 years agoRemove pthread references from libcommon
Matthew Legendre [Fri, 23 Jul 2010 18:37:03 +0000 (13:37 -0500)]
Remove pthread references from libcommon

9 years agoBuild DataflowAPI as part of ParseAPI to remove circular dependency
Andrew Bernat [Fri, 23 Jul 2010 16:39:01 +0000 (11:39 -0500)]
Build DataflowAPI as part of ParseAPI to remove circular dependency

9 years agoBuild DataflowAPI as part of ParseAPI
Andrew Bernat [Fri, 23 Jul 2010 15:12:02 +0000 (10:12 -0500)]
Build DataflowAPI as part of ParseAPI

9 years agoBad logic was preventing parsing of some jump tables.
Nathan Rosenblum [Fri, 23 Jul 2010 15:06:21 +0000 (10:06 -0500)]
Bad logic was preventing parsing of some jump tables.

This only applied where the indirect branch is at the end of the
first block of the function and no calls to that function had been
observed (so the block's sources() vector was empty). This bug
cropped up because functions with unparsed jump tables are now marked
uninstrumentable, and 64-bit libc's printf happens to be just such
a function, causing instrumentation that inserts calls to printf
to break.

9 years agoMove SymEval to production name of DataflowAPI.
Andrew Bernat [Fri, 23 Jul 2010 15:07:19 +0000 (10:07 -0500)]
Move SymEval to production name of DataflowAPI.

9 years agoRe-enable new single functions to be created after parsing.
Nathan Rosenblum [Thu, 22 Jul 2010 21:38:27 +0000 (16:38 -0500)]
Re-enable new single functions to be created after parsing.

Note that this functionality is orthogonal to the bulk reparsing
in mapped_object::parseNewFunctions, and is there to support creation
of targetted functions like ".init", ".fini" and "main" on Linux/x86

9 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Thu, 22 Jul 2010 21:41:57 +0000 (16:41 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

9 years agoAdd missed file for StackwalkerAPI BG fixes
Matthew Legendre [Thu, 22 Jul 2010 21:40:39 +0000 (16:40 -0500)]
Add missed file for StackwalkerAPI BG fixes

9 years agoRestore broken LineInformation interface in SymtabAPI
Matthew Legendre [Thu, 22 Jul 2010 21:39:42 +0000 (16:39 -0500)]
Restore broken LineInformation interface in SymtabAPI

9 years agoClean build warnings
Matthew Legendre [Thu, 22 Jul 2010 21:38:44 +0000 (16:38 -0500)]
Clean build warnings

9 years agoFixes for StackwalkerAPI on BlueGene
Matthew Legendre [Thu, 22 Jul 2010 21:38:11 +0000 (16:38 -0500)]
Fixes for StackwalkerAPI on BlueGene

9 years agoBluegene rewriter changes
Madhavi Krishnan [Thu, 22 Jul 2010 21:18:19 +0000 (16:18 -0500)]
Bluegene rewriter changes

In object-elf.C,
We identify the platform as Bluegene using the comment section.
The comment section should contain the string BGP.

In Symtab.C,
We adjust the pagesize of the new PT_LOAD segment (if any) to 1MB
due to compute node restrictions.

In emitElf.C,
We use one of the following mechanisms to
add new loadable section in Bluegene:
1) We either expand BSS section
2) We replace NOTE section with a LOAD section.

9 years agoFixed typo
Madhavi Krishnan [Thu, 22 Jul 2010 20:16:54 +0000 (15:16 -0500)]
Fixed typo

9 years agoAdd Function parameter to unresolved_cf callback
Madhavi Krishnan [Thu, 22 Jul 2010 20:02:00 +0000 (15:02 -0500)]
Add Function parameter to unresolved_cf callback

9 years agoRemoves cyclic dependency between symEval and parseAPI
Kevin Roundy [Thu, 22 Jul 2010 17:20:49 +0000 (12:20 -0500)]
Removes cyclic dependency between symEval and parseAPI

It turned out that the cyclic dependency I had introduced between
ParseAPI and symEval caused problems on other platforms than Windows.
These build problems only manifested when building from a clean
repository.  As of this commit, the parseAPI no-longer depends on
symEval, and we'll work on a way to allow for slicing to be allowed
in the ParseAPI without introducing cyclic library dependencies.

9 years agoMerge branch 'bsd' of ssh://mcnulty@wasabi.cs.wisc.edu/p/paradyn/development/mcnulty...
Dan McNulty [Wed, 21 Jul 2010 18:15:04 +0000 (13:15 -0500)]
Merge branch 'bsd' of ssh://mcnulty@wasabi.cs.wisc.edu/p/paradyn/development/mcnulty/d0/dyninst into bsd

9 years agoWorking towards getting pc_irpc test working on FreeBSD
Dan McNulty [Tue, 20 Jul 2010 18:56:07 +0000 (13:56 -0500)]
Working towards getting pc_irpc test working on FreeBSD

This involves misc. changes through out.

Also includes a fix to distinguish SIGTRAPs sent because of
a trap and SIGTRAPs delivered for an unspecified reason.

This commit also includes a rewrite of the pc_thread_cont test.

The original pc_thread_cont continued a thread, one at a time, and
waited for their exit. After continued, each thread (except the initial
thread) would lock and unlock the test init lock and exit.

This implementation caused problems on FreeBSD. When going to continue a
single thread, it will only run if it is first in line to obtain the
test init lock.  So when the test continues a thread and waits for it to
exit, there is no guarantee that the thread will exit before other
threads are continued.

The solution to this problem is to use a lock for each thread in the
mutatee so when a single thread is continued, it is guaranteed to run
and exit before continuing other threads. This solution required a few
handshakes back and forth between the mutatee and mutator to work
correctly. The code will be the best documentation for this.

9 years agoUsing symEval in ParseAPI for slicing, added hybrid analysis code
Paradyn Account [Tue, 13 Jul 2010 17:03:43 +0000 (12:03 -0500)]
Using symEval in ParseAPI for slicing, added hybrid analysis code

This commit gets hybrid analysis closer to working on Dyninst.  As
a part of this effort, I'm using symEval's slicing capabilities
in the ParseAPI so that I can tell if a function tampers with its
call stack to modify its return address.  This introduces a cyclic
dependency between ParseAPI and symEval, which is problematic on
Windows binaries, as cyclic dependencies between dlls are not
allowed.  The solution I used in this commit was to build a single
dll for the two libraries (other platforms continue to produce
separate shared libraries), which seemed reasonable since neither
library will be used without the other anyway.

9 years agoWorking towards getting pc_irpc test working on FreeBSD
Dan McNulty [Tue, 20 Jul 2010 18:56:07 +0000 (13:56 -0500)]
Working towards getting pc_irpc test working on FreeBSD

This commit also includes a rewrite of the pc_thread_cont test.

9 years agoAdd platform "support" for AIX (untested) and Solaris (not built)
Andrew Bernat [Tue, 20 Jul 2010 18:10:59 +0000 (13:10 -0500)]
Add platform "support" for AIX (untested) and Solaris (not built)

9 years agoMore changes to support multithreaded debuggees on FreeBSD.
Dan McNulty [Fri, 9 Jul 2010 17:49:54 +0000 (12:49 -0500)]
More changes to support multithreaded debuggees on FreeBSD.

Updates to FreeBSD Makefiles and the RT library with changes only made to 7.2
i386 so far.

Includes a function to determine the initial LWP of a running process.

Includes some reworking of the pc_thread_cont test. These changes will be
overridden by a future commit.

Made miscellaneous bug fixes throughout, work in progress to get iRPC tests
working for multithreaded debuggees on FreeBSD.

The implementation of thread stops and continues was reworked in this commit.
This commit removes the fields pending user continue and pending continue, and
it removes the EventContinue. FreeBSD requires that a process be stopped before
continuing a thread. So to continue a thread in a process with other running
threads, the process must be stopped before issuing the continue. To implement
this, the desync/restore operations on the internal state were used to stop a
process with running threads before continuing a running thread. This
implementation appears in both the threadPool continue and thread continue
functions.

Also encountered a weird bug when attaching to MT debuggees. On attach, all
threads are suspended. When continuing a single of these threads, multiple
threads run which makes ProcControl's state inconsistent with the OS's state.
This commit includes a workaround (see the FreeBSD specific handlers for more
info).

9 years agoFor non-IAPI platforms (SPARC), don't try to get the disassembly of an instruction...
Bill Williams [Fri, 16 Jul 2010 19:22:56 +0000 (14:22 -0500)]
For non-IAPI platforms (SPARC), don't try to get the disassembly of an instruction in the test suite.

9 years agoFix for bugfix in test 2-14.
Bill Williams [Fri, 16 Jul 2010 16:28:13 +0000 (11:28 -0500)]
Fix for bugfix in test 2-14.

9 years agoFixes for memory tests:
Bill Williams [Fri, 16 Jul 2010 16:05:43 +0000 (11:05 -0500)]
Fixes for memory tests:

* Reenable the standard execution path, running mutatees and checking their exit codes
* Disable the explicit continuation of mutatees; the framework handles this
* Enable CPUID checking for SSE/MMX/SSE2/3DNow! on 64-bit x86
* Fix many bugs in code generation of x86 (32 and 64 bit) effective address and byte count snippets
* Remove IA64 platform from test spec
* Fix push, pop, call, return to use correct address widths in memory access instrumentation

9 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 16 Jul 2010 17:57:32 +0000 (12:57 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

9 years agoMore fixes for icc on dyn_detail
Matthew Legendre [Fri, 16 Jul 2010 17:56:54 +0000 (12:56 -0500)]
More fixes for icc on dyn_detail

9 years agoUpdated SymEval::expand to ensure that we re-process nodes that were
Emily Jacobson [Fri, 16 Jul 2010 15:16:32 +0000 (10:16 -0500)]
Updated SymEval::expand to ensure that we re-process nodes that were
incomplete during initial passthrough.

9 years agoInitial version of completed backward slicing.
Emily Jacobson [Fri, 16 Jul 2010 15:16:05 +0000 (10:16 -0500)]
Initial version of completed backward slicing.

9 years agosymEval fixes to conform to ROSE expectations.
Emily Jacobson [Fri, 16 Jul 2010 15:15:25 +0000 (10:15 -0500)]
symEval fixes to conform to ROSE expectations.

9 years agoFixed IA_IAPI::isMovAPSTAble() bug that allowed us to accidentally
Emily Jacobson [Fri, 16 Jul 2010 15:13:42 +0000 (10:13 -0500)]
Fixed IA_IAPI::isMovAPSTAble() bug that allowed us to accidentally
decode past the end of a section.

9 years agoAdded Graph::markAsEntryNode() and Graph::markAsExitNode(),
Emily Jacobson [Fri, 16 Jul 2010 15:13:07 +0000 (10:13 -0500)]
Added Graph::markAsEntryNode() and Graph::markAsExitNode(),
which were needed for slicing.

9 years agodyn_detail fix for icc compilers
Matthew Legendre [Thu, 15 Jul 2010 19:53:59 +0000 (14:53 -0500)]
dyn_detail fix for icc compilers

10 years agoUpdated Dyninst solution and project files for Windows
Kevin Roundy [Mon, 12 Jul 2010 18:12:21 +0000 (13:12 -0500)]
Updated Dyninst solution and project files for Windows