This PR is a bit more involved than the commit logs imply; there are some design/structural changes under the hood that will make Symtab more powerful and maintainable, but do need to get hammered out cleanly for all platforms. The overview is here: https://github.com/dyninst/dyninst/pull/135#issuecomment-245434780
Feedback on this one is particularly encouraged.
________________________________________
From: Dyninst-api <dyninst-api-bounces@xxxxxxxxxxx> on behalf of Bill Williams <bill@xxxxxxxxxxx>
Sent: Wednesday, September 7, 2016 4:49 PM
To: dyninst-api@xxxxxxxxxxx
Subject: [DynInst_API:] [dyninst/dyninst] 738a1c: Make interval trees containers
Branch: refs/heads/release9.2/fixes/line_info
Home: https://github.com/dyninst/dyninst
Commit: 738a1cdddd458a2cd4ea2fee3b016b0836728ea4
https://github.com/dyninst/dyninst/commit/738a1cdddd458a2cd4ea2fee3b016b0836728ea4
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2016-09-07 (Wed, 07 Sep 2016)
Changed paths:
M common/h/IBSTree.h
Log Message:
-----------
Make interval trees containers
Commit: 4699c82c5471315d5d67b15372dd5f82f1d779ab
https://github.com/dyninst/dyninst/commit/4699c82c5471315d5d67b15372dd5f82f1d779ab
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2016-09-07 (Wed, 07 Sep 2016)
Changed paths:
M dyninstAPI/h/BPatch_addressSpace.h
M dyninstAPI/h/BPatch_image.h
M dyninstAPI/h/BPatch_module.h
M dyninstAPI/h/BPatch_statement.h
M dyninstAPI/src/BPatch_addressSpace.C
M dyninstAPI/src/BPatch_image.C
M dyninstAPI/src/BPatch_module.C
M dyninstAPI/src/BPatch_statement.C
M symtabAPI/h/LineInformation.h
M symtabAPI/h/Module.h
M symtabAPI/h/RangeLookup.h
M symtabAPI/h/Symtab.h
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Module.C
M symtabAPI/src/Symtab.C
Log Message:
-----------
Gut RangeLookup and replace with boost::multi_index_container as our line information implementation. Still has some obvious performance problems, but appears to work.
Commit: 7530ec107b951558ed2e24dae6b2681d7dad9b51
https://github.com/dyninst/dyninst/commit/7530ec107b951558ed2e24dae6b2681d7dad9b51
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2016-09-07 (Wed, 07 Sep 2016)
Changed paths:
M symtabAPI/h/LineInformation.h
M symtabAPI/h/Module.h
M symtabAPI/h/RangeLookup.h
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Module.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object-elf.h
M symtabAPI/src/Object.h
M symtabAPI/src/Symtab.C
M symtabAPI/src/dwarfWalker.C
Log Message:
-----------
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.
Commit: 6d11dfdf626cc6069fb4019cd438ec61a10b26ef
https://github.com/dyninst/dyninst/commit/6d11dfdf626cc6069fb4019cd438ec61a10b26ef
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2016-09-07 (Wed, 07 Sep 2016)
Changed paths:
M cmake/warnings.cmake
M dyninstAPI/src/BPatch_module.C
M symtabAPI/h/LineInformation.h
M symtabAPI/h/Module.h
M symtabAPI/h/RangeLookup.h
A symtabAPI/h/StringTable.h
M symtabAPI/h/Symtab.h
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Module.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/Object-elf.h
M symtabAPI/src/Object-nt.C
M symtabAPI/src/Object-nt.h
M symtabAPI/src/Object.C
M symtabAPI/src/Object.h
M symtabAPI/src/Symtab.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/dwarfWalker.h
Log Message:
-----------
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).
Commit: 47c8e27e51b884ecdc603cfeb92803cfd3eb5f31
https://github.com/dyninst/dyninst/commit/47c8e27e51b884ecdc603cfeb92803cfd3eb5f31
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2016-09-07 (Wed, 07 Sep 2016)
Changed paths:
M common/h/IBSTree-fast.h
M parseAPI/h/CFG.h
M parseAPI/h/CFGFactory.h
M parseAPI/src/Block.C
M symtabAPI/h/LineInformation.h
M symtabAPI/h/Module.h
M symtabAPI/h/RangeLookup.h
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Module.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/dwarfWalker.C
Log Message:
-----------
Assorted cleanup. Fixed infinite loop in IBSTree_fast::find.
Commit: 714b5c5eb06e78b627e453f583393d3ff3be2bbd
https://github.com/dyninst/dyninst/commit/714b5c5eb06e78b627e453f583393d3ff3be2bbd
Author: Bill Williams <bill@xxxxxxxxxxx>
Date: 2016-09-07 (Wed, 07 Sep 2016)
Changed paths:
M common/src/debug_common.h
M symtabAPI/h/Function.h
M symtabAPI/h/LineInformation.h
M symtabAPI/h/Module.h
M symtabAPI/h/StringTable.h
M symtabAPI/src/Function.C
M symtabAPI/src/LineInformation.C
M symtabAPI/src/Module.C
M symtabAPI/src/Object-elf.C
M symtabAPI/src/dwarfWalker.C
M symtabAPI/src/dwarfWalker.h
Log Message:
-----------
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.
Compare: https://github.com/dyninst/dyninst/compare/58d4c19640e9...714b5c5eb06e
|