dyninst.git
3 years agoUpdate manuals and docs target for 9.2.
Bill Williams [Wed, 29 Jun 2016 21:49:44 +0000 (16:49 -0500)]
Update manuals and docs target for 9.2.

3 years agoBump version to 9.2.0 and update README with 9.2 release notes.
Bill Williams [Wed, 29 Jun 2016 21:16:44 +0000 (16:16 -0500)]
Bump version to 9.2.0 and update README with 9.2 release notes.

3 years agoTrack the relationship between base and subregisters.
Matt Morehouse [Wed, 29 Jun 2016 19:17:31 +0000 (14:17 -0500)]
Track the relationship between base and subregisters.

Any modification of a base register (e.g., RAX) has a related
modification on its subregister (e.g., EAX).  The opposite is also
true.  This commit introduces functionality to track that
relationship so that modifying one register in the pair affects the
other register appropriately.

3 years agoRemove flag tracking from StackAnalysis.
Matt Morehouse [Wed, 29 Jun 2016 18:11:09 +0000 (13:11 -0500)]
Remove flag tracking from StackAnalysis.

3 years agoImprove handling of XOR.
Matt Morehouse [Wed, 29 Jun 2016 18:04:41 +0000 (13:04 -0500)]
Improve handling of XOR.

Add memory tracking to StackAnalysis::handleXor() and replace
the default handling with more correct handling.

3 years agoChange representation of delta functions.
Matt Morehouse [Wed, 29 Jun 2016 17:40:13 +0000 (12:40 -0500)]
Change representation of delta functions.

Represent delta functions as "copies with deltas", where the from
and target locations are the same.  This representation simplifies
much of the accumulation logic for deltas.

3 years agoRemove sentinel values from Height and TransferFunc classes.
Matt Morehouse [Wed, 29 Jun 2016 17:25:39 +0000 (12:25 -0500)]
Remove sentinel values from Height and TransferFunc classes.

Use a flag to specify TOP and BOTTOM rather than MAX_LONG and
MIN_LONG.

3 years agoReorganize StackAnalysis header file.
Matt Morehouse [Wed, 29 Jun 2016 17:00:33 +0000 (12:00 -0500)]
Reorganize StackAnalysis header file.

Move some implementation details to the implementation file to
avoid clutter.  Also ensure uniform indentation in both files.

3 years agoAdd function summary capability to StackAnalysis.
Matt Morehouse [Wed, 29 Jun 2016 16:20:45 +0000 (11:20 -0500)]
Add function summary capability to StackAnalysis.

A function summary is a mapping from Abslocs to TransferFuncs. Each
Absloc in the mapping represents an abstract location that is
modified by the function. Each TransferFunc in the mapping
describes how the corresponding Absloc is defined in terms of
function inputs after the function returns. This commit adds the
StackAnalysis::getFunctionSummary() method which generates and
returns function summaries for the specified function.

3 years agoMiscellaneous accumulation logic fixes.
Matt Morehouse [Wed, 29 Jun 2016 00:16:32 +0000 (19:16 -0500)]
Miscellaneous accumulation logic fixes.

3 years agoFix return handling and add memory tracking for leave instructions.
Matt Morehouse [Wed, 29 Jun 2016 00:14:58 +0000 (19:14 -0500)]
Fix return handling and add memory tracking for leave instructions.

3 years agoAdd memory tracking for push/pop instructions.
Matt Morehouse [Wed, 29 Jun 2016 00:05:28 +0000 (19:05 -0500)]
Add memory tracking for push/pop instructions.

3 years agoRename aliasFunc to copyFunc.
Matt Morehouse [Wed, 29 Jun 2016 00:03:45 +0000 (19:03 -0500)]
Rename aliasFunc to copyFunc.

Copying is a more accurate description of the operation that
aliasFunc has been capturing since the copied value can be modified
without changing any of the other copies.

3 years agoAdd check for stack accesses with unknown offsets.
Matt Morehouse [Tue, 28 Jun 2016 23:59:22 +0000 (18:59 -0500)]
Add check for stack accesses with unknown offsets.

3 years agoMerge pull request #112 from dyninst/release9.2/fixes/rewriter_assert
John Detter [Wed, 29 Jun 2016 15:59:17 +0000 (10:59 -0500)]
Merge pull request #112 from dyninst/release9.2/fixes/rewriter_assert

Disabled condition decoding in stack rewriting.

3 years agoDisabled condition decoding in stack rewriting. 112/head
John Detter [Wed, 29 Jun 2016 14:35:33 +0000 (09:35 -0500)]
Disabled condition decoding in stack rewriting.

3 years agoMerge pull request #109 from cuviper/paged-papercuts
Bill Williams [Tue, 28 Jun 2016 21:11:06 +0000 (16:11 -0500)]
Merge pull request #109 from cuviper/paged-papercuts

symtabAPI: Apply corrections for the library_adjust page offset

3 years agoMerge pull request #107 from dyninst/VEX
John Detter [Tue, 28 Jun 2016 20:32:19 +0000 (15:32 -0500)]
Merge pull request #107 from dyninst/VEX

Rewriter fixes, instruction decoding fixes.

3 years agoProperly check the return value of inferior malloc irpc 107/head
Xiaozhu Meng [Tue, 28 Jun 2016 18:34:12 +0000 (13:34 -0500)]
Properly check the return value of inferior malloc irpc

3 years agosymtabAPI: Apply corrections for the library_adjust page offset 109/head
Josh Stone [Tue, 28 Jun 2016 00:44:49 +0000 (17:44 -0700)]
symtabAPI: Apply corrections for the library_adjust page offset

This commit aggregates the incremental fixes that Bill Williams and I
found while investigating issue #93, rewriting libc.so.

- The offsets of new sections need to account for library_adjust when
  placing themselves after the first new section.
- TLS symbol values need *not* be adjusted, as they're section-relative.
- DT_INIT/FINI values need to be adjusted.
- x86 IRELATIVE relocations need their addends adjusted.

Fixes #93.

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Tue, 28 Jun 2016 00:26:21 +0000 (19:26 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agoFixed Mark Krentel's build issue
John Detter [Mon, 27 Jun 2016 23:47:43 +0000 (18:47 -0500)]
Fixed Mark Krentel's build issue

3 years agoMerge pull request #105 from pefoley2/llvm_travis
Bill Williams [Mon, 27 Jun 2016 21:13:49 +0000 (16:13 -0500)]
Merge pull request #105 from pefoley2/llvm_travis

Don't use broken llvm apt mirror

3 years agoMerge pull request #108 from pefoley2/VEX_win
John Detter [Mon, 27 Jun 2016 16:40:43 +0000 (11:40 -0500)]
Merge pull request #108 from pefoley2/VEX_win

fix dll linkage on windows

3 years agofix dll linkage on windows 108/head
Peter Foley [Fri, 24 Jun 2016 18:00:33 +0000 (14:00 -0400)]
fix dll linkage on windows

3 years agoDon't use broken llvm apt mirror 105/head
Peter Foley [Fri, 24 Jun 2016 13:56:18 +0000 (09:56 -0400)]
Don't use broken llvm apt mirror

3 years agoBuild fix for 32 bit environments 106/head
John Detter [Fri, 24 Jun 2016 15:47:22 +0000 (10:47 -0500)]
Build fix for 32 bit environments

3 years agoBuild fix for 32 bit environments
John Detter [Wed, 22 Jun 2016 18:48:48 +0000 (13:48 -0500)]
Build fix for 32 bit environments

3 years agoFixed test_mem* issues
John Detter [Tue, 21 Jun 2016 23:23:58 +0000 (18:23 -0500)]
Fixed test_mem* issues

3 years agoMerge branch 'master' into VEX
John Detter [Tue, 21 Jun 2016 19:12:11 +0000 (14:12 -0500)]
Merge branch 'master' into VEX

3 years agoMerge pull request #102 from mxz297/master
Xiaozhu Meng [Tue, 21 Jun 2016 17:04:08 +0000 (12:04 -0500)]
Merge pull request #102 from mxz297/master

Fixes for jump table, instruction decoding, windows proccontrol

3 years agoFixes Windows Build 102/head
Xiaozhu Meng [Tue, 21 Jun 2016 16:49:20 +0000 (11:49 -0500)]
Fixes Windows Build

3 years agoAdded missing memory addressing modes from InstructionAPI
John Detter [Tue, 21 Jun 2016 14:24:05 +0000 (09:24 -0500)]
Added missing memory addressing modes from InstructionAPI

3 years agoMerge remote-tracking branch 'upstream/master' into windows
Xiaozhu Meng [Tue, 21 Jun 2016 02:33:21 +0000 (21:33 -0500)]
Merge remote-tracking branch 'upstream/master' into windows

3 years agoFixed a memory decoding issue
John Detter [Mon, 20 Jun 2016 22:04:21 +0000 (17:04 -0500)]
Fixed a memory decoding issue

3 years agoDisabled relocation debugging output
John Detter [Mon, 20 Jun 2016 21:22:39 +0000 (16:22 -0500)]
Disabled relocation debugging output

3 years agoBinary rewriting (IP relative) has been cleaned up and is working again
John Detter [Mon, 20 Jun 2016 21:17:27 +0000 (16:17 -0500)]
Binary rewriting (IP relative) has been cleaned up and is working again

3 years agoUse __thread instead of thread_local on non-windows platforms
Xiaozhu Meng [Mon, 20 Jun 2016 19:14:54 +0000 (14:14 -0500)]
Use __thread instead of thread_local on non-windows platforms

3 years agoFixes for procontrol on Windows including proper locking when deleting
Xiaozhu Meng [Mon, 20 Jun 2016 18:06:43 +0000 (13:06 -0500)]
Fixes for procontrol on Windows including proper locking when deleting
threads and broadcasting the conditional variable when create events
arrive

3 years agoFixed memory addressing assert
John Detter [Mon, 20 Jun 2016 12:40:07 +0000 (07:40 -0500)]
Fixed memory addressing assert

3 years agoBinary rewriting bugs fixed -- still segfault's with Unix benchmarking tool
John Detter [Mon, 20 Jun 2016 12:25:47 +0000 (07:25 -0500)]
Binary rewriting bugs fixed -- still segfault's with Unix benchmarking tool

3 years agoBug fixes for instruction parsing
John Detter [Mon, 20 Jun 2016 07:17:35 +0000 (02:17 -0500)]
Bug fixes for instruction parsing

3 years agoMerge branch 'master' of http://github.com/dyninst/dyninst into VEX
John Detter [Mon, 20 Jun 2016 05:17:31 +0000 (00:17 -0500)]
Merge branch 'master' of github.com/dyninst/dyninst into VEX

3 years agoError checking improvements
John Detter [Mon, 20 Jun 2016 05:17:22 +0000 (00:17 -0500)]
Error checking improvements

3 years agoMake the tramp guard bigger to avoid a glibc bug.
Josh Stone [Sat, 18 Jun 2016 00:28:07 +0000 (17:28 -0700)]
Make the tramp guard bigger to avoid a glibc bug.

Having just one byte of TLS induces glibc bug 14898 with the definition
of FORCED_DYNAMIC_TLS_OFFSET.  Bumping to two bytes avoids this.

Fixes #101

3 years agoImplemented rewriting fix -- testing
John Detter [Fri, 17 Jun 2016 20:02:42 +0000 (15:02 -0500)]
Implemented rewriting fix -- testing

3 years agoRTlib: use static TLS for the tramp guard (#99)
Josh Stone [Fri, 17 Jun 2016 17:51:43 +0000 (10:51 -0700)]
RTlib: use static TLS for the tramp guard (#99)

With dynamic TLS, the call to __tls_get_addr() could reach additional
instrumented code, infinitely recursing back to check the tramp guard.
Static TLS is a limited resource, but this case in RTlib is special
enough to warrant it for safety alone, nevermind performance.

3 years agoPrevent memory corruption: Dwarf_Dbg is a pointer under the hood, so don't take refer...
Bill Williams [Fri, 17 Jun 2016 16:17:11 +0000 (11:17 -0500)]
Prevent memory corruption: Dwarf_Dbg is a pointer under the hood, so don't take references to it.

3 years agoMerge branch 'heap_refactoring' of https://github.com/pefoley2/dyninst into windows
Xiaozhu Meng [Thu, 16 Jun 2016 22:13:17 +0000 (17:13 -0500)]
Merge branch 'heap_refactoring' of https://github.com/pefoley2/dyninst into windows

3 years agoMerge branch 'vs_build_fixes' of https://github.com/pefoley2/dyninst into windows
Xiaozhu Meng [Thu, 16 Jun 2016 21:31:06 +0000 (16:31 -0500)]
Merge branch 'vs_build_fixes' of https://github.com/pefoley2/dyninst into windows

3 years agoFix jump table analysis for 32-bit PIC code
Xiaozhu Meng [Wed, 15 Jun 2016 23:46:37 +0000 (18:46 -0500)]
Fix jump table analysis for 32-bit PIC code

3 years agouse more modern gcc 97/head
Peter Foley [Fri, 6 May 2016 03:30:05 +0000 (23:30 -0400)]
use more modern gcc

3 years agolink windows libraries privately
Peter Foley [Fri, 6 May 2016 03:18:59 +0000 (23:18 -0400)]
link windows libraries privately

3 years agofix Mutex undefined reference
Peter Foley [Fri, 6 May 2016 02:52:45 +0000 (22:52 -0400)]
fix Mutex undefined reference

3 years agodon't build parseThat on windows
Peter Foley [Fri, 6 May 2016 19:53:33 +0000 (15:53 -0400)]
don't build parseThat on windows

3 years agoVisual Studio build fixes
Peter Foley [Fri, 6 May 2016 17:41:35 +0000 (13:41 -0400)]
Visual Studio build fixes

3 years agoCleanup _snprintf logic
Peter Foley [Fri, 6 May 2016 00:19:28 +0000 (20:19 -0400)]
Cleanup _snprintf logic

Fix building dyninstAPI_RT with VS 2015.
Remove unnecessary overriding of _snprintf in favor of a centralized
definition.

3 years agouse thread_local for VS compatibility
Peter Foley [Fri, 6 May 2016 00:47:15 +0000 (20:47 -0400)]
use thread_local for VS compatibility

3 years agoBuild DyninstAPI_RT on Windows
Peter Foley [Wed, 15 Jun 2016 17:27:08 +0000 (13:27 -0400)]
Build DyninstAPI_RT on Windows

3 years agoRefactor RTheap to avoid doing arithmetic with void* 95/head
Peter Foley [Wed, 15 Jun 2016 17:52:23 +0000 (13:52 -0400)]
Refactor RTheap to avoid doing arithmetic with void*

Only causes a warning with gcc, but a fatal error with VS 2015.

3 years agodon't build docs by default under VS
Peter Foley [Mon, 30 May 2016 17:46:44 +0000 (13:46 -0400)]
don't build docs by default under VS

3 years agobundle cvconst.h
Peter Foley [Fri, 6 May 2016 03:21:47 +0000 (23:21 -0400)]
bundle cvconst.h

3 years agodelete generated vs files
Peter Foley [Thu, 5 May 2016 23:29:11 +0000 (19:29 -0400)]
delete generated vs files

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Tue, 14 Jun 2016 21:20:30 +0000 (16:20 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agoFixed documentation typo #41
John Detter [Tue, 14 Jun 2016 21:19:48 +0000 (16:19 -0500)]
Fixed documentation typo #41

3 years agoMerge pull request #91 from mxz297/master
Xiaozhu Meng [Tue, 14 Jun 2016 20:53:31 +0000 (15:53 -0500)]
Merge pull request #91 from mxz297/master

Latest fix for rice folks

3 years agoSimplify v + v * c = v * (c + 1), where v is a variable and c is a constant 91/head
Xiaozhu Meng [Tue, 14 Jun 2016 18:41:53 +0000 (13:41 -0500)]
Simplify v + v * c = v * (c + 1), where v is a variable and c is a constant

3 years agoFixed build issue in common/src/arch-x86.C
John Detter [Tue, 14 Jun 2016 17:48:17 +0000 (12:48 -0500)]
Fixed build issue in common/src/arch-x86.C

3 years agoAdded the last missing instructions from John Mellor-Crummey's binaries
John Detter [Tue, 14 Jun 2016 17:21:52 +0000 (12:21 -0500)]
Added the last missing instructions from John Mellor-Crummey's binaries

3 years agoMerge branch 'VEX' of https://github.com/dyninst/dyninst into dyninst-VEX
Xiaozhu Meng [Tue, 14 Jun 2016 14:51:19 +0000 (09:51 -0500)]
Merge branch 'VEX' of https://github.com/dyninst/dyninst into dyninst-VEX

Conflicts:
common/src/arch-x86.C

3 years ago64 bit translate issue fixed
John Detter [Tue, 14 Jun 2016 14:00:11 +0000 (09:00 -0500)]
64 bit translate issue fixed

3 years agoSeveral SSE instructions fixed, one VEX instruction fixed.
John Detter [Tue, 14 Jun 2016 13:38:59 +0000 (08:38 -0500)]
Several SSE instructions fixed, one VEX instruction fixed.

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Tue, 14 Jun 2016 13:00:24 +0000 (08:00 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agoAdded support for xbegin, xabort
John Detter [Tue, 14 Jun 2016 12:58:48 +0000 (07:58 -0500)]
Added support for xbegin, xabort

3 years agoDecrease jump table analysis bound
Xiaozhu Meng [Tue, 14 Jun 2016 02:18:26 +0000 (21:18 -0500)]
Decrease jump table analysis bound

3 years agoMerge branch 'master' of github.com:dyninst/dyninst
Xiaozhu Meng [Tue, 14 Jun 2016 00:52:26 +0000 (19:52 -0500)]
Merge branch 'master' of github.com:dyninst/dyninst

3 years agoCorrectly decode movsxd instruction operand sizes
Xiaozhu Meng [Tue, 14 Jun 2016 00:51:36 +0000 (19:51 -0500)]
Correctly decode movsxd instruction operand sizes

3 years agoMerge branch 'VEX' of github.com:dyninst/dyninst
Xiaozhu Meng [Mon, 13 Jun 2016 22:23:32 +0000 (17:23 -0500)]
Merge branch 'VEX' of github.com:dyninst/dyninst

3 years agoFixed instruction semantic assert issue
John Detter [Mon, 13 Jun 2016 22:22:21 +0000 (17:22 -0500)]
Fixed instruction semantic assert issue

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Mon, 13 Jun 2016 22:16:07 +0000 (17:16 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agoInstruction movlsq->movsx mnumonic and operand fix
John Detter [Mon, 13 Jun 2016 22:13:52 +0000 (17:13 -0500)]
Instruction movlsq->movsx mnumonic and operand fix

3 years agoMerge branch 'VEX' of github.com:dyninst/dyninst
Xiaozhu Meng [Mon, 13 Jun 2016 21:32:41 +0000 (16:32 -0500)]
Merge branch 'VEX' of github.com:dyninst/dyninst

3 years agoFix for mapREX
John Detter [Mon, 13 Jun 2016 21:31:11 +0000 (16:31 -0500)]
Fix for mapREX

3 years agoMerge branch 'VEX' of github.com:dyninst/dyninst
Xiaozhu Meng [Mon, 13 Jun 2016 19:50:23 +0000 (14:50 -0500)]
Merge branch 'VEX' of github.com:dyninst/dyninst

3 years agoAnother REX fix
John Detter [Mon, 13 Jun 2016 19:48:25 +0000 (14:48 -0500)]
Another REX fix

3 years agoMerge branch 'VEX' of github.com:dyninst/dyninst
Xiaozhu Meng [Mon, 13 Jun 2016 19:47:18 +0000 (14:47 -0500)]
Merge branch 'VEX' of github.com:dyninst/dyninst

3 years agoFix for Xiaozhu's issue
John Detter [Mon, 13 Jun 2016 19:44:38 +0000 (14:44 -0500)]
Fix for Xiaozhu's issue

3 years agoSimplify INTERP logic for better consistency (#84)
Josh Stone [Mon, 13 Jun 2016 12:01:25 +0000 (05:01 -0700)]
Simplify INTERP logic for better consistency (#84)

When .interp was in the first page, keep it there like the comment about
FreeBSD requires.  Just shift it for the new PHDR.  But if .interp is
already past the first page, as seen in libc.so for instance, then move
its offset a whole page like we do for every other section.  Then
program headers follow the same logic.

The conditional around startMovingSections and object type is totally
removed, as it did the wrong thing for PIE binaries which otherwise look
like shared libraries.  We now just move all sections except low interp.

Fixes #71.

3 years agoBuild fix for addrtranslate (#87)
Peter Foley [Sun, 12 Jun 2016 15:15:32 +0000 (11:15 -0400)]
Build fix for addrtranslate (#87)

3 years agoOnly check the outer most memory reads for jump table format
Xiaozhu Meng [Sun, 12 Jun 2016 12:59:30 +0000 (07:59 -0500)]
Only check the outer most memory reads for jump table format

3 years agotemporarily disable broken clang build (#85)
Peter Foley [Sat, 11 Jun 2016 03:57:20 +0000 (23:57 -0400)]
temporarily disable broken clang build (#85)

3 years agoJump tables should be only in read only sections
Xiaozhu Meng [Fri, 10 Jun 2016 19:37:09 +0000 (14:37 -0500)]
Jump tables should be only in read only sections

3 years agoStop slicing when we are sure an indirect jump is not a jump table
Xiaozhu Meng [Fri, 10 Jun 2016 18:50:37 +0000 (13:50 -0500)]
Stop slicing when we are sure an indirect jump is not a jump table

3 years agoVarious fixes for jump table analysis 1. add instruction semantics for conditional...
Xiaozhu Meng [Fri, 10 Jun 2016 15:42:51 +0000 (10:42 -0500)]
Various fixes for jump table analysis 1. add instruction semantics for conditional moves 2. correctly distinguish zero extended memory read from sign extended memory read 3. ignore variable size when tracking variable aliasing 4. more precise bound tracking for sub instruction

3 years agoMerge branch 'VEX'
John Detter [Fri, 10 Jun 2016 16:15:34 +0000 (11:15 -0500)]
Merge branch 'VEX'

3 years agoMerge branch 'master' of http://github.com/dyninst/dyninst
John Detter [Fri, 10 Jun 2016 16:15:29 +0000 (11:15 -0500)]
Merge branch 'master' of github.com/dyninst/dyninst

3 years agoMerge branch 'VEX' of http://github.com/dyninst/dyninst into VEX
John Detter [Fri, 10 Jun 2016 16:08:49 +0000 (11:08 -0500)]
Merge branch 'VEX' of github.com/dyninst/dyninst into VEX

3 years agokmask memory addressing mode now properly parses modr/m byte.
John Detter [Fri, 10 Jun 2016 16:06:53 +0000 (11:06 -0500)]
kmask memory addressing mode now properly parses modr/m byte.

3 years agoFix for square root floating point instructions (#82)
John Detter [Fri, 10 Jun 2016 13:17:00 +0000 (08:17 -0500)]
Fix for square root floating point instructions (#82)

* Fixed VEX assert issue

* Significant fixes to John Mellor-Crummey's binary parsing issue.

* Git log corrections -- small fixes

3 years agosseidx fixes for group map tables
John Detter [Fri, 10 Jun 2016 12:34:06 +0000 (07:34 -0500)]
sseidx fixes for group map tables