dyninst.git
3 years agoInterval refactoring.
Bill Williams [Thu, 13 Oct 2016 16:59:40 +0000 (11:59 -0500)]
Interval refactoring.

3 years agoCleanup
Bill Williams [Mon, 10 Oct 2016 16:58:13 +0000 (11:58 -0500)]
Cleanup

3 years agoRefactor module lookup implementation
Bill Williams [Fri, 30 Sep 2016 21:09:34 +0000 (16:09 -0500)]
Refactor module lookup implementation
Remove dead code
Fix up default module construction

3 years agoReplace all object-elf arch_foo defines with dynamic architecture detection.
Bill Williams [Fri, 30 Sep 2016 21:01:17 +0000 (16:01 -0500)]
Replace all object-elf arch_foo defines with dynamic architecture detection.

3 years agoDwarfWalker cleanup
Bill Williams [Fri, 30 Sep 2016 20:59:25 +0000 (15:59 -0500)]
DwarfWalker cleanup

3 years agoAdd pure multi-index container implementation of fast interval-based lookup.
Bill Williams [Fri, 30 Sep 2016 20:52:30 +0000 (15:52 -0500)]
Add pure multi-index container implementation of fast interval-based lookup.

3 years agoInterfaces to byte-swap ElfData buffers between file and memory order.
Bill Williams [Mon, 26 Sep 2016 15:57:18 +0000 (10:57 -0500)]
Interfaces to byte-swap ElfData buffers between file and memory order.

3 years agoSecondary fix for bad inline filenames
Bill Williams [Thu, 22 Sep 2016 21:29:51 +0000 (16:29 -0500)]
Secondary fix for bad inline filenames
Ensures that we're not doing bad partial initialization of string tables by being over-lazy

3 years agoEnsure default module goes at the beginning of _mods so we can avoid lookup-by-name.
Bill Williams [Mon, 19 Sep 2016 21:01:12 +0000 (16:01 -0500)]
Ensure default module goes at the beginning of _mods so we can avoid lookup-by-name.

3 years agoBuild fixup
Bill Williams [Mon, 19 Sep 2016 21:00:51 +0000 (16:00 -0500)]
Build fixup

3 years agoClean up stream operators: warnings, template vs. std::ostream
Bill Williams [Tue, 13 Sep 2016 19:27:01 +0000 (14:27 -0500)]
Clean up stream operators: warnings, template vs. std::ostream

3 years agoFactor out arange parsing and avoid early exit if it's absent
Bill Williams [Tue, 13 Sep 2016 19:26:17 +0000 (14:26 -0500)]
Factor out arange parsing and avoid early exit if it's absent

3 years agoRemove dead code
Bill Williams [Tue, 13 Sep 2016 19:24:58 +0000 (14:24 -0500)]
Remove dead code

3 years agoFix signed/unsigned warning
Bill Williams [Tue, 13 Sep 2016 19:24:22 +0000 (14:24 -0500)]
Fix signed/unsigned warning

3 years agoCleanup so we build cleanly under boost 1.41/gcc 4.4 again.
Bill Williams [Thu, 8 Sep 2016 20:44:05 +0000 (15:44 -0500)]
Cleanup so we build cleanly under boost 1.41/gcc 4.4 again.

3 years agoAdded interface for line info find-with-hint.
Bill Williams [Wed, 7 Sep 2016 18:25:12 +0000 (13:25 -0500)]
Added interface for line info find-with-hint.
Fixed dwarfWalker bug where we doubled up on compensating for one-based indexing.
dwarfWalker now uses/fills a Module's stringtable directly.
StringTables now streamable for debugging.
Inlines use string table entries for filenames.

3 years agoAssorted cleanup. Fixed infinite loop in IBSTree_fast::find.
Bill Williams [Tue, 6 Sep 2016 15:54:13 +0000 (10:54 -0500)]
Assorted cleanup. Fixed infinite loop in IBSTree_fast::find.

3 years agoLine info fixes: nwchem is now running clean. There's a good bit of room for performa...
Bill Williams [Thu, 1 Sep 2016 19:33:21 +0000 (14:33 -0500)]
Line info fixes: nwchem is now running clean. There's a good bit of room for performance improvements (notably in ensuring that we don't have redundant module intervals).

3 years agoLots of refactoring and some optimizations. We're not saving space or time anymore...
Bill Williams [Fri, 26 Aug 2016 22:46:21 +0000 (17:46 -0500)]
Lots of refactoring and some optimizations. We're not saving space or time anymore but at least it's clean and we're only missing ~10k entries (down from ~100k) on nwchem.

3 years agoGut RangeLookup and replace with boost::multi_index_container as our line information...
Bill Williams [Thu, 25 Aug 2016 21:33:54 +0000 (16:33 -0500)]
Gut RangeLookup and replace with boost::multi_index_container as our line information implementation. Still has some obvious performance problems, but appears to work.

3 years agoMake interval trees containers
Bill Williams [Thu, 25 Aug 2016 21:32:17 +0000 (16:32 -0500)]
Make interval trees containers

3 years agoAdded find and lower_bound to RangeLookup.
Bill Williams [Tue, 16 Aug 2016 18:09:53 +0000 (13:09 -0500)]
Added find and lower_bound to RangeLookup.

3 years agoRestore old findModuleByOffset interface in parallel with the new one.
Bill Williams [Mon, 15 Aug 2016 19:32:51 +0000 (14:32 -0500)]
Restore old findModuleByOffset interface in parallel with the new one.

3 years agoMany fixes and optimizations--mostly, moving the interval trees for module ranges...
Bill Williams [Fri, 12 Aug 2016 16:05:35 +0000 (11:05 -0500)]
Many fixes and optimizations--mostly, moving the interval trees for module ranges from one per module to one per symtab with a pointer to the module.

3 years agoInitialize DIE to NULL, rather than default constructing, so it's checkable.
Bill Williams [Wed, 10 Aug 2016 18:55:40 +0000 (13:55 -0500)]
Initialize DIE to NULL, rather than default constructing, so it's checkable.

3 years agoRemove dead file from CMakeLists.
Bill Williams [Fri, 29 Jul 2016 19:31:40 +0000 (14:31 -0500)]
Remove dead file from CMakeLists.

3 years agoCache module DIEs and build ranges as interval trees.
Bill Williams [Fri, 29 Jul 2016 19:31:24 +0000 (14:31 -0500)]
Cache module DIEs and build ranges as interval trees.

3 years agoWarning cleanup.
Bill Williams [Wed, 13 Jul 2016 18:44:45 +0000 (13:44 -0500)]
Warning cleanup.

3 years agoReplace individual linesrc calls with srcfiles, allowing libdwarf to allocate once...
Bill Williams [Tue, 12 Jul 2016 21:00:12 +0000 (16:00 -0500)]
Replace individual linesrc calls with srcfiles, allowing libdwarf to allocate once and us to do lookups by index rather than strcmp.

3 years agoReplace iterative dealloc with dwarf_srclines_dealloc, which should avoid certain...
Bill Williams [Tue, 12 Jul 2016 20:09:50 +0000 (15:09 -0500)]
Replace iterative dealloc with dwarf_srclines_dealloc, which should avoid certain leaks that were inherent in the iterative style.

3 years agoMake Statement's filenames const char* pointing into the string table, not just LineI...
Bill Williams [Tue, 12 Jul 2016 18:58:47 +0000 (13:58 -0500)]
Make Statement's filenames const char* pointing into the string table, not just LineInformation's copies of same.

3 years agoRename emitElf64, fix 32-bit build
Bill Williams [Thu, 2 Jun 2016 16:47:30 +0000 (11:47 -0500)]
Rename emitElf64, fix 32-bit build

3 years agoProperly handle SL_UNIQUE in switch statements
Peter Foley [Sun, 30 Oct 2016 22:34:58 +0000 (18:34 -0400)]
Properly handle SL_UNIQUE in switch statements

e.g.
/home/peter/dyninst/symtabAPI/src/Object.C:97:20: warning: enumeration
value ‘SL_UNIQUE’ not handled in switch [-Wswitch]
/home/peter/dyninst/symtabAPI/src/Symtab.C:3465:11: warning: enumeration
value ‘SL_UNIQUE’ not handled in switch [-Wswitch]

3 years agoDisable unnecessary FindBoost debugging output by default
Peter Foley [Sun, 30 Oct 2016 21:34:44 +0000 (17:34 -0400)]
Disable unnecessary FindBoost debugging output by default

3 years agoFix typo in Boost_FOUND conditional
Peter Foley [Sun, 30 Oct 2016 21:28:12 +0000 (17:28 -0400)]
Fix typo in Boost_FOUND conditional

3 years agoAdded symbol linkage support for GNU unique linkage types (#209)
Benjamin Welton [Wed, 19 Oct 2016 22:03:14 +0000 (17:03 -0500)]
Added symbol linkage support for GNU unique linkage types (#209)

* Added symbol linkage support for GNU unique linkage types

* Added define guards around STB_GNU_UNIQUE

3 years agopefoley2-boost_win (#194)
Bill Williams [Tue, 18 Oct 2016 22:10:52 +0000 (17:10 -0500)]
pefoley2-boost_win (#194)

Make boost-as-external cross-platform.

3 years agoMerge pull request #180 from dyninst/release9.2/fixes/documentation
Bill Williams [Fri, 14 Oct 2016 21:38:00 +0000 (16:38 -0500)]
Merge pull request #180 from dyninst/release9.2/fixes/documentation

Documentation updates -- tentative

3 years agoMerge pull request #192 from dyninst/elfx_add_xlate_funcs
Bill Williams [Wed, 12 Oct 2016 21:59:29 +0000 (16:59 -0500)]
Merge pull request #192 from dyninst/elfx_add_xlate_funcs

ElfX: add xlate funcs

3 years agoAdd xlatetof and xlatetom. 192/head
Bill Williams [Wed, 12 Oct 2016 21:20:33 +0000 (16:20 -0500)]
Add xlatetof and xlatetom.

3 years agoUpdate Elf_X.C
Bill Williams [Wed, 12 Oct 2016 21:19:32 +0000 (16:19 -0500)]
Update Elf_X.C

3 years agoMerge pull request #185 from dyninst/release9.2/fixes/inline_filename_fixes
Bill Williams [Wed, 12 Oct 2016 20:27:29 +0000 (15:27 -0500)]
Merge pull request #185 from dyninst/release9.2/fixes/inline_filename_fixes

String table now includes an entry at zero for "unknown", so don't subtract from the DWARF file number.

3 years agoMerge pull request #191 from cuviper/try-tls-init
Bill Williams [Wed, 12 Oct 2016 19:48:48 +0000 (14:48 -0500)]
Merge pull request #191 from cuviper/try-tls-init

proccontrol: check thread handle before calculating TLS

3 years agoproccontrol: check thread handle before calculating TLS 191/head
Josh Stone [Wed, 12 Oct 2016 00:56:04 +0000 (17:56 -0700)]
proccontrol: check thread handle before calculating TLS

3 years agoMerge pull request #189 from dyninst/release9.2/fixes/findMainJenkins
Bill Williams [Wed, 5 Oct 2016 18:43:48 +0000 (13:43 -0500)]
Merge pull request #189 from dyninst/release9.2/fixes/findMainJenkins

Improved the findMain analysis significantly

3 years agoDeleted the old code block 189/head
John Detter [Wed, 5 Oct 2016 17:52:18 +0000 (12:52 -0500)]
Deleted the old code block

3 years agoImproved the findMain analysis significantly
John Detter [Tue, 4 Oct 2016 21:43:28 +0000 (16:43 -0500)]
Improved the findMain analysis significantly

3 years agoRemove debug output 185/head
Bill Williams [Tue, 4 Oct 2016 16:56:40 +0000 (11:56 -0500)]
Remove debug output

3 years agoClear srcfiles on each invocation of buildSrcFiles, so we're looking at the right...
Bill Williams [Mon, 3 Oct 2016 22:29:29 +0000 (17:29 -0500)]
Clear srcfiles on each invocation of buildSrcFiles, so we're looking at the right module's file list.

3 years agoString table now includes an entry at zero for "unknown", so don't subtract from...
Bill Williams [Fri, 30 Sep 2016 21:18:58 +0000 (16:18 -0500)]
String table now includes an entry at zero for "unknown", so don't subtract from the DWARF file number.

3 years agosuppress proccontrol warnings
Peter Foley [Fri, 1 Jul 2016 21:15:38 +0000 (17:15 -0400)]
suppress proccontrol warnings

3 years agofix parseAPI/dataflowAPI warnings
Peter Foley [Fri, 1 Jul 2016 20:59:00 +0000 (16:59 -0400)]
fix parseAPI/dataflowAPI warnings

3 years agofix symtabAPI warnings
Peter Foley [Fri, 1 Jul 2016 20:21:25 +0000 (16:21 -0400)]
fix symtabAPI warnings

3 years agofix instructionAPI warning
Peter Foley [Fri, 1 Jul 2016 20:16:07 +0000 (16:16 -0400)]
fix instructionAPI warning

3 years agofix dyninstAPI warnings
Peter Foley [Fri, 1 Jul 2016 20:05:16 +0000 (16:05 -0400)]
fix dyninstAPI warnings

3 years agocmake cleanup
Peter Foley [Fri, 1 Jul 2016 18:35:16 +0000 (14:35 -0400)]
cmake cleanup

3 years agoMerge pull request #183 from rafzi/pr4_cmake_libiberty
Bill Williams [Tue, 27 Sep 2016 16:55:29 +0000 (11:55 -0500)]
Merge pull request #183 from rafzi/pr4_cmake_libiberty

cmake: Fix not building when libiberty is automatically installed

3 years agocmake: Fix not building when libiberty is automatically installed 183/head
Rafael Stahl [Sun, 25 Sep 2016 19:15:54 +0000 (21:15 +0200)]
cmake: Fix not building when libiberty is automatically installed

3 years agoMerge pull request #172 from rafzi/pr1_elf_endianness
Bill Williams [Tue, 20 Sep 2016 18:57:28 +0000 (13:57 -0500)]
Merge pull request #172 from rafzi/pr1_elf_endianness

elf: fix uninitialized isBigEndian for archives; duplicate code removal

3 years agoelf: fix uninitialized isBigEndian for archives; duplicate code removal 172/head
Rafael Stahl [Tue, 6 Sep 2016 15:30:12 +0000 (17:30 +0200)]
elf: fix uninitialized isBigEndian for archives; duplicate code removal

3 years agoUpdate README.md 180/head
John Detter [Tue, 20 Sep 2016 07:25:56 +0000 (02:25 -0500)]
Update README.md

3 years agoUpdate and rename README to README.md
John Detter [Tue, 20 Sep 2016 07:21:55 +0000 (02:21 -0500)]
Update and rename README to README.md

3 years agoCreate README.md
John Detter [Tue, 20 Sep 2016 07:18:08 +0000 (02:18 -0500)]
Create README.md

3 years agoUpdate README.md
John Detter [Tue, 20 Sep 2016 07:17:43 +0000 (02:17 -0500)]
Update README.md

3 years agoCreate README.md
John Detter [Tue, 20 Sep 2016 07:17:23 +0000 (02:17 -0500)]
Create README.md

3 years agoCreate README.md
John Detter [Tue, 20 Sep 2016 07:16:40 +0000 (02:16 -0500)]
Create README.md

3 years agoUpdate README.md
John Detter [Tue, 20 Sep 2016 07:15:53 +0000 (02:15 -0500)]
Update README.md

3 years agoUpdate README.md
John Detter [Tue, 20 Sep 2016 07:02:39 +0000 (02:02 -0500)]
Update README.md

3 years agoUpdate README.md
John Detter [Tue, 20 Sep 2016 07:01:50 +0000 (02:01 -0500)]
Update README.md

3 years agoRenamed and updated README for parseThat
John Detter [Tue, 20 Sep 2016 07:14:28 +0000 (02:14 -0500)]
Renamed and updated README for parseThat

3 years agoUpdate README.md
John Detter [Tue, 20 Sep 2016 06:54:57 +0000 (01:54 -0500)]
Update README.md

3 years agoMarkdown updates
John Detter [Tue, 20 Sep 2016 06:58:57 +0000 (01:58 -0500)]
Markdown updates

3 years agoMerge pull request #173 from rafzi/pr2_symtab_dataseg
Bill Williams [Mon, 19 Sep 2016 16:26:35 +0000 (11:26 -0500)]
Merge pull request #173 from rafzi/pr2_symtab_dataseg

symtabAPI: dont expect a data segment in elf; eliminate dead code

3 years agoThe argument to SymEvalSemantics::addWithCarries for unsign-extending
Sunny Shah [Sun, 18 Sep 2016 23:39:47 +0000 (18:39 -0500)]
The argument to SymEvalSemantics::addWithCarries for unsign-extending
the second addend should be the second operand from the instruction AST.

The bug here was that the first operand from the AST was being passed
for the unsign-extend operation. This caused the semantic expression and
hence the resulting assignment expansion for the instructions calling
this function to be incorrect.

3 years agoMore Github formatting
John Detter [Wed, 14 Sep 2016 19:01:22 +0000 (14:01 -0500)]
More Github formatting

3 years agoWhen determining the ROSE register category for ARM registers, comparisions of the...
Sunny Shah [Wed, 14 Sep 2016 17:54:12 +0000 (12:54 -0500)]
When determining the ROSE register category for ARM registers, comparisions of the MachRegisters with 'baseID' should only use the MachRegister's lowermost 16 bits.

3 years agoUpdated READMEs for Github markdown
John Detter [Wed, 14 Sep 2016 17:54:07 +0000 (12:54 -0500)]
Updated READMEs for Github markdown

3 years agoUpdated README
Bill Williams [Tue, 13 Sep 2016 21:05:49 +0000 (16:05 -0500)]
Updated README

Added a branch status block at the top.

3 years agosymtabAPI: dont expect a data segment in elf; eliminate dead code 173/head
Rafael Stahl [Tue, 6 Sep 2016 16:04:36 +0000 (18:04 +0200)]
symtabAPI: dont expect a data segment in elf; eliminate dead code

3 years agoMerge pull request #164 from dyninst/release9.2/fixes/jenkins-fix
Bill Williams [Fri, 2 Sep 2016 15:59:36 +0000 (10:59 -0500)]
Merge pull request #164 from dyninst/release9.2/fixes/jenkins-fix

CMake fixes for Cotire and GCC 4.4 compatibility

3 years agoMerge pull request #166 from dyninst/sfm/fixes/guard_non-x86
morehouse [Thu, 1 Sep 2016 20:57:31 +0000 (15:57 -0500)]
Merge pull request #166 from dyninst/sfm/fixes/guard_non-x86

Guard StackMod implementation from non-x86 architectures.

3 years agoGuard StackMod implementation from non-x86 architectures. 166/head
Matt Morehouse [Thu, 1 Sep 2016 18:21:07 +0000 (13:21 -0500)]
Guard StackMod implementation from non-x86 architectures.

3 years agospace out template '>>' for pre-C++11 compatibility
Josh Stone [Wed, 31 Aug 2016 17:23:55 +0000 (10:23 -0700)]
space out template '>>' for pre-C++11 compatibility

3 years agoTesting cotire modifications 164/head
John Detter [Tue, 30 Aug 2016 22:40:26 +0000 (17:40 -0500)]
Testing cotire modifications

3 years agoMore cotire restrictions added.
John Detter [Tue, 30 Aug 2016 22:27:01 +0000 (17:27 -0500)]
More cotire restrictions added.

3 years agoMoved cotire logic to shared.cmake
John Detter [Tue, 30 Aug 2016 22:22:16 +0000 (17:22 -0500)]
Moved cotire logic to shared.cmake

3 years agoCheck cmake version to make sure cotire is supported
John Detter [Tue, 30 Aug 2016 22:19:37 +0000 (17:19 -0500)]
Check cmake version to make sure cotire is supported

3 years agoCheck GCC version and decide whether or not to use cotire
John Detter [Tue, 30 Aug 2016 21:52:44 +0000 (16:52 -0500)]
Check GCC version and decide whether or not to use cotire

3 years agofix insnCodeGen::modifyData's 64-bit conversion
Josh Stone [Sat, 27 Aug 2016 00:42:54 +0000 (17:42 -0700)]
fix insnCodeGen::modifyData's 64-bit conversion

On RHEL6 with a prelinked `/lib64/libc-2.12.so`, all of tests involving
fork instrumentation were getting SIGSEGV in the mutatee.  This worked
in 9.1, and it also works fine after `prelink -u` to undo libc.  Using
git-bisect found 2b86eb4577bb as the point of regression.

It seems prelink ends up with libc sitting far away from the relocation
buffer, more than a 32-bit displacement, so `insnCodeGen::modifyData`
decides to rewrite that to a 64-bit immediate.  To do this, it has to
emit additional instructions first.  But after the commit above, part of
the rewritten instruction has already been written when we're trying to
emit those extras, and things gets clobbered.

This patch emits those preamble instructions first, before any part of
the newly rewritten instruction is copied out.

3 years agoMerge branch 'release9.2/fixes/make-install-fix' into release9.2/fixes/jenkins-fix
John Detter [Mon, 29 Aug 2016 15:09:33 +0000 (10:09 -0500)]
Merge branch 'release9.2/fixes/make-install-fix' into release9.2/fixes/jenkins-fix

3 years agoMerge branch 'release9.2/fixes/nullptr-compatibility' into release9.2/fixes/jenkins-fix
John Detter [Mon, 29 Aug 2016 14:54:14 +0000 (09:54 -0500)]
Merge branch 'release9.2/fixes/nullptr-compatibility' into release9.2/fixes/jenkins-fix

3 years agoHad to disable precompiled headers for instructionAPI.
John Detter [Mon, 29 Aug 2016 14:53:30 +0000 (09:53 -0500)]
Had to disable precompiled headers for instructionAPI.

3 years agoinstructionAPI: use uintmax_t when formatting addresses
Josh Stone [Sat, 27 Aug 2016 00:19:32 +0000 (17:19 -0700)]
instructionAPI: use uintmax_t when formatting addresses

3 years agoReplaced nullptr with NULL (RHEL6 GCC 4.4 compatibility) 162/head
John Detter [Fri, 26 Aug 2016 19:57:32 +0000 (14:57 -0500)]
Replaced nullptr with NULL (RHEL6 GCC 4.4 compatibility)

3 years agoFixes make install issue 161/head
John Detter [Fri, 26 Aug 2016 17:41:58 +0000 (12:41 -0500)]
Fixes make install issue

3 years agoMerge pull request #159 from dyninst/release9.2/fixes/cotire-gitignore
Bill Williams [Tue, 23 Aug 2016 22:13:51 +0000 (17:13 -0500)]
Merge pull request #159 from dyninst/release9.2/fixes/cotire-gitignore

Added generated cotire directories to gitignore

3 years agoAdded generated cotire directories to gitignore 159/head
John Detter [Tue, 23 Aug 2016 21:09:45 +0000 (16:09 -0500)]
Added generated cotire directories to gitignore

3 years agoMerge pull request #19 from pefoley2/appveyor
Bill Williams [Mon, 22 Aug 2016 16:06:34 +0000 (11:06 -0500)]
Merge pull request #19 from pefoley2/appveyor

Add config to build using Appveyor

3 years agoMerge pull request #14 from pefoley2/clang_warn
Bill Williams [Mon, 22 Aug 2016 15:56:05 +0000 (10:56 -0500)]
Merge pull request #14 from pefoley2/clang_warn

Fix warnings produced when compiling with clang

3 years agoremove obsolete nmake config 19/head
Peter Foley [Sat, 16 Jul 2016 14:39:48 +0000 (10:39 -0400)]
remove obsolete nmake config