dyninst.git
11 years agoAutoconf fixes: ia64 platform typo, export more standard directories; configure rebui...
Bill Williams [Wed, 30 Sep 2009 20:26:06 +0000 (15:26 -0500)]
Autoconf fixes: ia64 platform typo, export more standard directories; configure rebuilt as a result.

11 years agoCross-platform fixes for parsing migration to IAPI; includes experimental Windows...
Bill Williams [Wed, 30 Sep 2009 20:25:20 +0000 (15:25 -0500)]
Cross-platform fixes for parsing migration to IAPI; includes experimental Windows call target checking, IAPI version.
Verified on AIX/power, Sparc/Solaris, IA64/Linux, AMD64/Linux so far.

11 years agoBug fix: force 32-bit mode for decoding a 32-bit libc
Bill Williams [Thu, 10 Sep 2009 21:45:29 +0000 (16:45 -0500)]
Bug fix: force 32-bit mode for decoding a 32-bit libc

11 years agoGetInstLevel abstracted to InstructionAdapter base
Bill Williams [Thu, 10 Sep 2009 21:44:59 +0000 (16:44 -0500)]
GetInstLevel abstracted to InstructionAdapter base

11 years agoCleanup:
Bill Williams [Thu, 10 Sep 2009 21:19:19 +0000 (16:19 -0500)]
Cleanup:

* Separate IAPI and InstrucIter adapters into separate files.
* Promote common methods, provide useful IA data members for internals

11 years agoEverything but NOP detection and instruction copying to instpoints in buildCFG using...
Bill Williams [Thu, 10 Sep 2009 16:07:09 +0000 (11:07 -0500)]
Everything but NOP detection and instruction copying to instpoints in buildCFG using IAPI rather than InstrucIter.
Still somewhat slow, and needs code cleanup desperately.

11 years agoAdded extra debug logging to loop test (1-37).
Bill Williams [Thu, 3 Sep 2009 20:12:35 +0000 (15:12 -0500)]
Added extra debug logging to loop test (1-37).

11 years agoParsing rewrite 1.0: adapter for IAPI/InstrucIter conversion.
Bill Williams [Thu, 3 Sep 2009 20:12:14 +0000 (15:12 -0500)]
Parsing rewrite 1.0: adapter for IAPI/InstrucIter conversion.

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Thu, 1 Oct 2009 14:53:48 +0000 (09:53 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoFix for segfault when sorting exception block objects
Matthew Legendre [Thu, 1 Oct 2009 14:53:16 +0000 (09:53 -0500)]
Fix for segfault when sorting exception block objects

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Wed, 30 Sep 2009 21:45:28 +0000 (16:45 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoFixes, mostly building, for Fedora Core 11
Matthew Legendre [Wed, 30 Sep 2009 21:44:24 +0000 (16:44 -0500)]
Fixes, mostly building, for Fedora Core 11

11 years agoFixes for bug 1028:Single snippet removal at multi-inst point
Madhavi Krishnan [Mon, 28 Sep 2009 17:03:01 +0000 (12:03 -0500)]
Fixes for bug 1028:Single snippet removal at multi-inst point

In this fix, we regenerate multitramp when its basetramp is changed.
A new function called updateCode is added to multiTramp class. This function
regenerates new code for the multiTramp when a miniTrampInstance is
removed.
I also fixed a bug in multiTramp.C - removeCode function - condition to
check if a particular multiTramp is the current version mapped in the process
table.

11 years agoFixes for instrumenting shared library:
Madhavi Krishnan [Tue, 1 Sep 2009 15:54:39 +0000 (10:54 -0500)]
Fixes for instrumenting shared library:
* Fixed condition for checking if a binary is static or not
- We determine if a binary is static by the absence of INTERP
          section. Shared libraries may not have INTERP section but
          are still dynamic. In this fix, we check for the presence of
          INTERP section or the elf type being ELF_DYN
          (dynamic shared library) to mark both dynamic executable
  and shared library as non-static.
* Added place holder for saving referring symbol when creating
  a new symbol from undefined symbol. This is needed for checking if
  a variable comes an executable or shared library to add a dependency in
  DT_NEEDED entries. If the variable comes from an executable, we should not
  add to DT_NEEDED entry.
* Set RT path for dynamically loaded library

11 years agoAutoconf fixes:
Bill Williams [Thu, 20 Aug 2009 20:15:15 +0000 (15:15 -0500)]
Autoconf fixes:

* Pick up binary/include/library destinations from PREFIX.
* Add disable-testsuite option (so that make install will work, e.g. for packagers)

11 years agoTest build fixes: Instruction to Instruction::Ptr conversion for AMD64, killed dead...
Bill Williams [Thu, 20 Aug 2009 20:12:58 +0000 (15:12 -0500)]
Test build fixes: Instruction to Instruction::Ptr conversion for AMD64, killed dead code.

11 years agoSeveral small fixes, including the following:
Nathan Rosenblum [Thu, 20 Aug 2009 18:54:03 +0000 (13:54 -0500)]
Several small fixes, including the following:

 - Recursive function parsing eliminates a previously held invariant
   on the order of functions in a block's funcs_ vector. Relying on
   this (nonexistent) ordering coudl cause us to miss copying some
   instPoints in shared code.

 - Kevin discovered an extremely common non-returning function on
   Windows platforms; this is now on the special-case list.

 - Calling the STL set::size() method is slow. Fixed.

11 years agoAdd boost pool headers to external; update IAPI make.module.tmpl so it no longer...
Bill Williams [Mon, 17 Aug 2009 15:44:01 +0000 (10:44 -0500)]
Add boost pool headers to external; update IAPI make.module.tmpl so it no longer tries to copy a nonexistent header.

11 years agoInstructionAPI optimization pass 1:
Bill Williams [Fri, 14 Aug 2009 21:47:04 +0000 (16:47 -0500)]
InstructionAPI optimization pass 1:

* Delayed decoding of operands
* Use of fixed-size allocation pools for IAPI objects
* Placement new for frequently reconstructed objects
* Lighter-weight low-level decoding
* Optimized storage of raw instruction bytes
* Eliminated redundant encoding of operand read/write info
* Eliminated many unnecessary copy operations
  - Parameter passing by cref preferred to passing by value
  - Eliminate copy-on-return via shared pointer in public interface, since we can't rely on RVO
* Avoid dynamic casts where possible
* Delay construction of flag objects as long as possible

11 years agoUpdate DepGraphAPI to use new StackAnalysis interface
Andrew Bernat [Tue, 28 Jul 2009 19:51:38 +0000 (14:51 -0500)]
Update DepGraphAPI to use new StackAnalysis interface

Update StackAnalysis to return shared pointers instead of raw pointers.

11 years agoInitial commit of new region-based stack depth analysis.
Andrew Bernat [Fri, 3 Jul 2009 21:04:18 +0000 (16:04 -0500)]
Initial commit of new region-based stack depth analysis.

TODO:
  1) Shared-pointer Region tracking so that users can discard a stack analysis object without losing all its memory.
  2) Fill in stack affecting instructions.

11 years agoReduce InstructionAPI copy overhead by making fewer copies.
Andrew Bernat [Fri, 3 Jul 2009 21:03:34 +0000 (16:03 -0500)]
Reduce InstructionAPI copy overhead by making fewer copies.

11 years agoFix Stackwalker custom ProcessState, Fix Symtab address size
Todd Frederick [Fri, 3 Jul 2009 13:52:44 +0000 (08:52 -0500)]
Fix Stackwalker custom ProcessState, Fix Symtab address size

11 years agotemporarily disable test_symtab_ser_funcs for the release Release6_0
James Waskiewicz [Tue, 30 Jun 2009 17:46:08 +0000 (13:46 -0400)]
temporarily disable test_symtab_ser_funcs for the release

11 years agoUse the right path for external/boost in building the test suite.
Bill Williams [Tue, 30 Jun 2009 17:34:52 +0000 (12:34 -0500)]
Use the right path for external/boost in building the test suite.

11 years agoAdd StackwalkerAPI to top level build target
Matthew Legendre [Tue, 30 Jun 2009 17:03:56 +0000 (12:03 -0500)]
Add StackwalkerAPI to top level build target

11 years agoUpdate Dyninst version numbers from 5.2 to 6.0
Matthew Legendre [Tue, 30 Jun 2009 17:02:56 +0000 (12:02 -0500)]
Update Dyninst version numbers from 5.2 to 6.0

11 years agoMake test_type_info compatible with Windows
Matthew Legendre [Tue, 30 Jun 2009 02:35:35 +0000 (21:35 -0500)]
Make test_type_info compatible with Windows

11 years agoFix bad defines in include file
Matthew Legendre [Mon, 29 Jun 2009 22:53:42 +0000 (17:53 -0500)]
Fix bad defines in include file

11 years agoFix race condition that showed up in a fork test
Matthew Legendre [Mon, 29 Jun 2009 22:47:44 +0000 (17:47 -0500)]
Fix race condition that showed up in a fork test

11 years agoFix for mismatch between C and C++ memory allocation: new/free changed to new/delete
Bill Williams [Fri, 26 Jun 2009 19:28:32 +0000 (14:28 -0500)]
Fix for mismatch between C and C++ memory allocation: new/free changed to new/delete

11 years agoInstructionAPI docs versioned to 1.0.
Bill Williams [Fri, 26 Jun 2009 15:50:43 +0000 (10:50 -0500)]
InstructionAPI docs versioned to 1.0.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 26 Jun 2009 19:56:16 +0000 (14:56 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoRemove DEBUG_FLAG from Makefiles.
Andrew Bernat [Fri, 26 Jun 2009 19:56:03 +0000 (14:56 -0500)]
Remove DEBUG_FLAG from Makefiles.

11 years agoWindows build fix
Matthew Legendre [Fri, 26 Jun 2009 19:44:13 +0000 (14:44 -0500)]
Windows build fix

11 years agoMore changes to Makefile.in to set libelf and libdwarf
Madhavi Krishnan [Fri, 26 Jun 2009 19:23:42 +0000 (14:23 -0500)]
More changes to Makefile.in to set libelf and libdwarf

11 years agoMore parseThat build issues
Madhavi Krishnan [Fri, 26 Jun 2009 19:20:04 +0000 (14:20 -0500)]
More parseThat build issues

Changes to build parseThat when LD_LIBRARY_PATH is not set.
We pass dwarf and elf library path to configure.

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 26 Jun 2009 18:21:57 +0000 (13:21 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoFix issue where test_driver could infinite spin if a group setup crashed
Matthew Legendre [Fri, 26 Jun 2009 18:20:53 +0000 (13:20 -0500)]
Fix issue where test_driver could infinite spin if a group setup crashed

11 years agoWe weren't setting location structure for a couple types of instructions.
Matthew Legendre [Fri, 26 Jun 2009 18:19:11 +0000 (13:19 -0500)]
We weren't setting location structure for a couple types of instructions.

11 years agoFix issue where we failed to throw away a junk link map entry
Matthew Legendre [Fri, 26 Jun 2009 18:17:33 +0000 (13:17 -0500)]
Fix issue where we failed to throw away a junk link map entry

11 years agoMake strings of nop break basic blocks
Matthew Legendre [Fri, 26 Jun 2009 18:16:31 +0000 (13:16 -0500)]
Make strings of nop break basic blocks

11 years agoRewriting libc
Madhavi Krishnan [Thu, 25 Jun 2009 22:32:19 +0000 (17:32 -0500)]
Rewriting libc

We were dropping relocation entries if they have index STN_UNDEF and
no name. This was causing failures while rewriting libc.
This commit fixes this. We replicate original relocation entries
even if they have no name preserving its undefined index status.

11 years agoFix for parseThat build failures
Madhavi Krishnan [Thu, 25 Jun 2009 19:10:53 +0000 (14:10 -0500)]
Fix for parseThat build failures

parseThat build involves executing parseThat/Makefile and
parseThat/$PLATFORM/Makefile. We were setting
TO_CORE (path to dyninst directory) as "../.." which is correct
if we are in parseThat/$PLATFORM/Makefile but
wrong if we are in parseThat/Makefile.

The only reason to use TO_CORE in parseThat/Makefile is to set the
platform if not set, using scripts/sysname. This commit fixes this
problem by setting the path to scripts correctly, without using TO_CORE.

11 years ago* Correctly open the first dependency that matches the ABI of its parent.
Bill Williams [Wed, 24 Jun 2009 22:49:23 +0000 (17:49 -0500)]
* Correctly open the first dependency that matches the ABI of its parent.
* Only do a full dependency check if we're opening them
* Scan for a thread library separately from opening dependent libs
* Maintain proper recursion for opening dependent libraries & adding new ones

11 years agoFix issues with instrumenting overlapping instructions
Matthew Legendre [Wed, 24 Jun 2009 18:24:14 +0000 (13:24 -0500)]
Fix issues with instrumenting overlapping instructions

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Tue, 23 Jun 2009 23:59:07 +0000 (18:59 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoFix testsuite attach race condition
Matthew Legendre [Tue, 23 Jun 2009 23:58:42 +0000 (18:58 -0500)]
Fix testsuite attach race condition

11 years agoMore windows build fixes
Matthew Legendre [Tue, 23 Jun 2009 23:56:29 +0000 (18:56 -0500)]
More windows build fixes

11 years agoRewriting static binary
Madhavi Krishnan [Tue, 23 Jun 2009 22:53:30 +0000 (17:53 -0500)]
Rewriting static binary

This commit handles rewriting static binaries. We determine if
a binary is static in ObjectElf using PT_INTERP. We use this
condition to selectively not execute code related to dynamic linking
and relocation in ObjectElf and emitElf.

We also disable traps in binaryEdit and baseTramps - since static
binaries cannot load our runtime library.

We still do not handle stripped binary in this commit - but thats
coming soon.

11 years agoFortran fixes
Bill Williams [Tue, 23 Jun 2009 20:37:26 +0000 (15:37 -0500)]
Fortran fixes

11 years agoPlatform-specific guard for platform-specific check
Bill Williams [Tue, 23 Jun 2009 19:32:04 +0000 (14:32 -0500)]
Platform-specific guard for platform-specific check

11 years agoSet the right address width before we emit any code.
Bill Williams [Tue, 23 Jun 2009 15:35:52 +0000 (10:35 -0500)]
Set the right address width before we emit any code.

11 years agoMove more variables out of .bss so we can write them with the rewriter.
Bill Williams [Tue, 23 Jun 2009 15:35:23 +0000 (10:35 -0500)]
Move more variables out of .bss so we can write them with the rewriter.

11 years agoAdd boost include directory to test suite includes.
Bill Williams [Fri, 19 Jun 2009 18:45:39 +0000 (13:45 -0500)]
Add boost include directory to test suite includes.

11 years agoEnabled many tests in binary rewriter mode. Still some failures on AMD64.
Bill Williams [Thu, 18 Jun 2009 15:21:46 +0000 (10:21 -0500)]
Enabled many tests in binary rewriter mode.  Still some failures on AMD64.

11 years agoFix windows build breakage
Matthew Legendre [Tue, 23 Jun 2009 17:45:32 +0000 (12:45 -0500)]
Fix windows build breakage

11 years agoRemove bad check from test--modules without code address are legal
Matthew Legendre [Tue, 23 Jun 2009 17:14:56 +0000 (12:14 -0500)]
Remove bad check from test--modules without code address are legal

11 years agoFix issues with line number parsing when we can't find a module
Matthew Legendre [Tue, 23 Jun 2009 17:14:01 +0000 (12:14 -0500)]
Fix issues with line number parsing when we can't find a module

11 years agoRemove debugging printfs, code cleanup
Matthew Legendre [Tue, 23 Jun 2009 17:12:49 +0000 (12:12 -0500)]
Remove debugging printfs, code cleanup

11 years agoFix problem with mis-aligned section entries vs section sizes
Matthew Legendre [Mon, 22 Jun 2009 23:28:40 +0000 (18:28 -0500)]
Fix problem with mis-aligned section entries vs section sizes

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Mon, 22 Jun 2009 22:43:47 +0000 (17:43 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoFix issues with testsuite not restarting properly after crashes
Matthew Legendre [Mon, 22 Jun 2009 22:43:29 +0000 (17:43 -0500)]
Fix issues with testsuite not restarting properly after crashes

11 years agobug 1022 - fixed (again) loop condition for finding dynamic section in ELF binary
Madhavi Krishnan [Mon, 22 Jun 2009 17:13:05 +0000 (12:13 -0500)]
bug 1022 - fixed (again) loop condition for finding dynamic section in ELF binary

11 years agobug 1022 - fixed loop condition for finding dynamic section in ELF binary
Madhavi Krishnan [Fri, 19 Jun 2009 21:46:41 +0000 (16:46 -0500)]
bug 1022 - fixed loop condition for finding dynamic section in ELF binary

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Fri, 19 Jun 2009 19:24:25 +0000 (14:24 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoCode generation fixes.
Andrew Bernat [Fri, 19 Jun 2009 19:24:19 +0000 (14:24 -0500)]
Code generation fixes.

11 years agoUse correct code generation path in code replacement.
Andrew Bernat [Fri, 19 Jun 2009 19:23:59 +0000 (14:23 -0500)]
Use correct code generation path in code replacement.

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 19 Jun 2009 19:00:36 +0000 (14:00 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Fri, 19 Jun 2009 18:41:04 +0000 (13:41 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

Conflicts:
dyninstAPI/src/BPatch_binaryEdit.C
dyninstAPI/src/binaryEdit.C

11 years agoremove debug output leakage
James Waskiewicz [Fri, 19 Jun 2009 18:37:32 +0000 (14:37 -0400)]
remove debug output leakage

11 years agotestsuite: expand DYNINST_REWRITER_NO_UNLINK such that unique filenames are produced...
James Waskiewicz [Fri, 19 Jun 2009 18:24:28 +0000 (14:24 -0400)]
testsuite:  expand DYNINST_REWRITER_NO_UNLINK such that unique filenames are produced for each rungroup, this ensures that binaries are not overwritten by each successive group.  For a given rungroup, only a subset of the rewriter tests will be valid.  This also creates a report file, one per rewritten binary, that contains the list of
tests that were implemented in that particular binary.

Also, if, in a rungroup, one test fails or crashes, all tests in the group were marked with failure.  This changes that:  now if a rewritten mutatee crashes or reports failure, the rungroup is broken apart into individual tests, with each being run seperately to provide a finer grain of reporting on what succeeded and what failed.

11 years agotest_pt_ls: update to execute rewritten binary (both automatically via parseThat...
James Waskiewicz [Fri, 19 Jun 2009 14:59:50 +0000 (10:59 -0400)]
test_pt_ls:  update to execute rewritten binary (both automatically via parseThat and manually as a sanity check)

11 years agoFixes for intercepting SIGTRAP registration
Matthew Legendre [Thu, 18 Jun 2009 21:51:55 +0000 (16:51 -0500)]
Fixes for intercepting SIGTRAP registration

11 years agoAdd "dyn_signal" to intercept calls to signal()
Andrew Bernat [Thu, 18 Jun 2009 20:49:00 +0000 (15:49 -0500)]
Add "dyn_signal" to intercept calls to signal()

11 years agoAdd stdlib to include line so that Ginger won't complain it doesn't know what a mallo...
Andrew Bernat [Thu, 18 Jun 2009 20:22:54 +0000 (15:22 -0500)]
Add stdlib to include line so that Ginger won't complain it doesn't know what a malloc is.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Thu, 18 Jun 2009 20:10:47 +0000 (15:10 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoAdd inter-module call replacement to test1_14F (fortran mode)
Andrew Bernat [Thu, 18 Jun 2009 20:10:33 +0000 (15:10 -0500)]
Add inter-module call replacement to test1_14F (fortran mode)

11 years agoRemove debugging statements.
Andrew Bernat [Thu, 18 Jun 2009 20:10:11 +0000 (15:10 -0500)]
Remove debugging statements.
Fix a logic error in emitting static inter-module calls
Recognize shared libraries correctly in the binary rewriter.

11 years agoRemove debugging statements
Andrew Bernat [Thu, 18 Jun 2009 20:09:37 +0000 (15:09 -0500)]
Remove debugging statements

11 years agotestsuite Windows build fixes
Matthew Legendre [Thu, 18 Jun 2009 17:00:10 +0000 (12:00 -0500)]
testsuite Windows build fixes

11 years agoFix issue with emitting 1 byte and 2 byte loads/stores on x86_64
Matthew Legendre [Thu, 18 Jun 2009 01:18:30 +0000 (20:18 -0500)]
Fix issue with emitting 1 byte and 2 byte loads/stores on x86_64

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
Andrew Bernat [Wed, 17 Jun 2009 18:51:52 +0000 (13:51 -0500)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agoCorrectly run test1_14
Andrew Bernat [Wed, 17 Jun 2009 18:51:30 +0000 (13:51 -0500)]
Correctly run test1_14

11 years agoAdd an inter-module call replacement to test1_14
Andrew Bernat [Wed, 17 Jun 2009 18:51:21 +0000 (13:51 -0500)]
Add an inter-module call replacement to test1_14

11 years agoCorrectly run test1_14
Andrew Bernat [Wed, 17 Jun 2009 18:51:06 +0000 (13:51 -0500)]
Correctly run test1_14

11 years agoCorrectly run test1_14
Andrew Bernat [Wed, 17 Jun 2009 18:50:50 +0000 (13:50 -0500)]
Correctly run test1_14

11 years agoFix call replacement for the rewriter on x86/x86-64.
Andrew Bernat [Wed, 17 Jun 2009 18:50:30 +0000 (13:50 -0500)]
Fix call replacement for the rewriter on x86/x86-64.

11 years agoAdd call-replacement version of call emission.
Andrew Bernat [Wed, 17 Jun 2009 18:49:51 +0000 (13:49 -0500)]
Add call-replacement version of call emission.

11 years agoMake function replacement via instruction replacement POWER-only; use old methods...
Andrew Bernat [Wed, 17 Jun 2009 18:49:27 +0000 (13:49 -0500)]
Make function replacement via instruction replacement POWER-only; use old methods on x86

11 years agocleanup last cleanup: use static class var instead of global extern to accumulate...
James Waskiewicz [Wed, 17 Jun 2009 13:31:19 +0000 (09:31 -0400)]
cleanup last cleanup:  use static class var instead of global extern to accumulate longest test name

11 years agotestsuite output formatting -- for a given run of the testsuite, measure the longest...
James Waskiewicz [Wed, 17 Jun 2009 13:20:45 +0000 (09:20 -0400)]
testsuite output formatting -- for a given run of the testsuite, measure the longest test name
that will be executed and format output accordingly.

11 years agoMerge branch 'master' of git.dyninst.org:/pub/dyninst
James Waskiewicz [Wed, 17 Jun 2009 12:11:51 +0000 (08:11 -0400)]
Merge branch 'master' of git.dyninst.org:/pub/dyninst

11 years agofixes rewriter bug w/ 64bit linux binaries where a bad field in a section header was
James Waskiewicz [Wed, 17 Jun 2009 12:07:08 +0000 (08:07 -0400)]
fixes rewriter bug w/ 64bit linux binaries where a bad field in a section header was
causing the libelf output routine to fail...  notably, the check in libelf that was failing was
that the size of the section in question was not a multiple of the specified element size.

This fix just checks for this condition and rounds up the section size if this problem manifests.

Also includes some more work trying to resolve relatively minor inconsistencies between stabs and dwarf, as well was gcc, vs solaris cc ouputs and how we represent types.  They parsing does not fail but the end result in how we represent certain types may have slight variations depending on platform, which makes things hard to test (eg, match an expected value across all platforms).

Alas, many of these problems still persist, but they seem minor and not worth spending a lot of further time on.  In some cases, I modified test_type_info to accommodate certain special cases.

11 years agoFixes for test_pt_ls: Added default path if DYNINST_ROOT is not set. Also adding...
Madhavi Krishnan [Wed, 17 Jun 2009 03:18:01 +0000 (22:18 -0500)]
Fixes for test_pt_ls: Added default path if DYNINST_ROOT is not set. Also adding parseThat target to make nightly

11 years agoMerge branch 'master' of legendre@git.dyninst.org:/pub/dyninst
Matthew Legendre [Tue, 16 Jun 2009 23:03:13 +0000 (18:03 -0500)]
Merge branch 'master' of legendre@git.dyninst.org:/pub/dyninst

11 years agoFix assert in merging union types during DWARF parsing
Matthew Legendre [Tue, 16 Jun 2009 22:51:18 +0000 (17:51 -0500)]
Fix assert in merging union types during DWARF parsing

11 years agoFix problem with not parsing types in all libraries
Matthew Legendre [Tue, 16 Jun 2009 22:50:50 +0000 (17:50 -0500)]
Fix problem with not parsing types in all libraries

11 years agoRemove debugging printfs, re-indent code with inconsistent tabs
Matthew Legendre [Tue, 16 Jun 2009 22:49:55 +0000 (17:49 -0500)]
Remove debugging printfs, re-indent code with inconsistent tabs

11 years agoHandling multiple hash sections
Madhavi Krishnan [Tue, 16 Jun 2009 18:36:19 +0000 (13:36 -0500)]
Handling multiple hash sections
A binary can have multiple hash sections - ELF hash, GNU hash etc.
We were not handling this case correctly. In this commit, we
consolidate the entries and create one ELF hash section in the
rewritten binary. The dynamic section will have pointer to this ELF
hash section we created.