Recent and Upcoming Advances in the Dyninst Toolkits Bill Williams Paradyn Project Petascale Tools Workshop Granlibakken, CA Aug 1-Aug 4, 2016
Dyninst Development Roadmap Dyninst 9.2 Dyninst 9.3 Dyninst 10.0 Q2/3 2016 Q3 2016 2017 • New platforms • Smarter, better, faster • New features • Testing and robustness New Developments in the Dyninst Toolkits 2
Dyninst Platforms Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 3
Dyninst Platforms Dyninst 9.2 KNL support PPC/LE analysis ARMv8 instructions Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 3
Dyninst Platforms Dyninst 9.2 Dyninst 9.3 KNL support PPC/LE instrumentation PPC/LE analysis Windows rewriter ARMv8 instructions ARMv8 parsing Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 3
Dyninst Platforms Dyninst 9.2 Dyninst 9.3 Dyninst 10.0 KNL support PPC/LE instrumentation ARMv8 instrumentation Windows 64-bit PPC/LE analysis Windows rewriter Power9? ARMv8 instructions ARMv8 parsing ARM 32-bit? Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 3
Dyninst Features Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 4
Dyninst Features Dyninst 9.2 New platforms PIE rewriting support Bug fixes Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 4
Dyninst Features Dyninst 9.2 Dyninst 9.3 New platforms AT&T disassembly PIE rewriting support PPC ABI v2 Bug fixes abstractions Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 4
Dyninst Features Dyninst 9.2 Dyninst 9.3 Dyninst 10.0 New platforms AT&T disassembly Callbacks revisited Exception support PIE rewriting support PPC ABI v2 GPU abstractions Bug fixes abstractions Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 4
Smarter, Better, Faster Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 5
Smarter, Better, Faster Dyninst 9.2 SD-Dyninst in main release Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 5
Smarter, Better, Faster Dyninst 9.2 Dyninst 9.3 SD-Dyninst in Better line info main release Better stack analysis Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 5
Smarter, Better, Faster Dyninst 9.2 Dyninst 9.3 Dyninst 10.0 SD-Dyninst in Better line info DWARF for relocated main release code Better stack SD-Dyninst analysis Self-propelled Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 5
Testing and Robustness Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 6
Testing and Robustness Dyninst 9.2 Move to github Fuzz testing DataflowAPI docs Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 6
Testing and Robustness Dyninst 9.2 Dyninst 9.3 Move to github Better CI system Fuzz testing Better test reports DataflowAPI docs Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 6
Testing and Robustness Dyninst 9.2 Dyninst 9.3 Dyninst 10.0 Move to github Better CI system Ongoing improvements Fuzz testing Better test reports DataflowAPI docs Q2/3 2016 Q3 2016 2017 New Developments in the Dyninst Toolkits 6
Github and Community Engagement o Open bug tracker o Easier to verify contributions o Turnkey release system o Increased activity o Number of commits o Number of committers o Transparent discussions New Developments in the Dyninst Toolkits 7
Outside contributions (current and future) o Architecture-independent binary analysis o Improvements in continuous integration o Much code cleanup o External build and test machines o More and better bug reports o More collaborative bug fixes New Developments in the Dyninst Toolkits 8
Release 9.2.1 o Line information fixes o Correctness (virtual functions, Fortran) o Speed o PPC64 rewriting fixes o Generate more robust intermodule calls o Crash bugs fixed o Windows stack walking fixes New Developments in the Dyninst Toolkits 9
Dyninst 9.3 o PPC ABI v2 o Uniform AT&T disassembly o ARM64 instruction semantics o Complete ParseAPI on ARM64 o Windows rewriter New Developments in the Dyninst Toolkits 10
Fuzz testing instructions o Started in Dyninst 9.1 o Integral in ARM implementation o Allowed rapid, accurate catch-up on x86 New Developments in the Dyninst Toolkits 11
ARM semantics: interface Provides overridable function for each element of semantic pseudocode: o Assignment o Bit field extraction o Sign/zero extension o Math o If/then/else o Register access o Memory access New Developments in the Dyninst Toolkits 12
ARM semantics: construction Translate book pseudocode to ROSE policy class o Build Bison grammar from XML to C++ o Start with elements for common instructions o Apply to ParseAPI o Iterate New Developments in the Dyninst Toolkits 13
Software info o Main project page: https://github.com/dyninst/ dyninst o Issue tracker o Releases and manuals o Coming soon: test results o LGPL o Contributions welcome New Developments in the Dyninst Toolkits 14
Recommend
More recommend