Recent and Upcoming Advances in the Dyninst Toolkits Bill Williams - - PowerPoint PPT Presentation

recent and upcoming advances in the dyninst toolkits
SMART_READER_LITE
LIVE PREVIEW

Recent and Upcoming Advances in the Dyninst Toolkits Bill Williams - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Paradyn Project

Petascale Tools Workshop Granlibakken, CA Aug 1-Aug 4, 2016

Recent and Upcoming Advances in the Dyninst Toolkits

Bill Williams

slide-2
SLIDE 2

New Developments in the Dyninst Toolkits

Dyninst 10.0 Dyninst 9.3 Dyninst 9.2

Dyninst Development Roadmap

2

Q2/3 2016 Q3 2016 2017

  • New platforms
  • New features
  • Smarter, better, faster
  • Testing and robustness
slide-3
SLIDE 3

New Developments in the Dyninst Toolkits

Dyninst Platforms

3

Q2/3 2016 Q3 2016 2017

slide-4
SLIDE 4

New Developments in the Dyninst Toolkits

Dyninst 9.2 KNL support PPC/LE analysis ARMv8 instructions

Dyninst Platforms

3

Q2/3 2016 Q3 2016 2017

slide-5
SLIDE 5

New Developments in the Dyninst Toolkits

Dyninst 9.2 KNL support PPC/LE analysis ARMv8 instructions Dyninst 9.3 Windows rewriter PPC/LE instrumentation ARMv8 parsing

Dyninst Platforms

3

Q2/3 2016 Q3 2016 2017

slide-6
SLIDE 6

New Developments in the Dyninst Toolkits

Dyninst 9.2 KNL support PPC/LE analysis ARMv8 instructions Dyninst 10.0 ARMv8 instrumentation Windows 64-bit Power9? ARM 32-bit? Dyninst 9.3 Windows rewriter PPC/LE instrumentation ARMv8 parsing

Dyninst Platforms

3

Q2/3 2016 Q3 2016 2017

slide-7
SLIDE 7

New Developments in the Dyninst Toolkits

Dyninst Features

4

Q2/3 2016 Q3 2016 2017

slide-8
SLIDE 8

New Developments in the Dyninst Toolkits

Dyninst 9.2 New platforms PIE rewriting support Bug fixes

Dyninst Features

4

Q2/3 2016 Q3 2016 2017

slide-9
SLIDE 9

New Developments in the Dyninst Toolkits

Dyninst 9.2 New platforms PIE rewriting support Bug fixes Dyninst 9.3 AT&T disassembly PPC ABI v2 abstractions

Dyninst Features

4

Q2/3 2016 Q3 2016 2017

slide-10
SLIDE 10

New Developments in the Dyninst Toolkits

Dyninst 9.2 New platforms PIE rewriting support Bug fixes Dyninst 10.0 Callbacks revisited Exception support GPU abstractions Dyninst 9.3 AT&T disassembly PPC ABI v2 abstractions

Dyninst Features

4

Q2/3 2016 Q3 2016 2017

slide-11
SLIDE 11

New Developments in the Dyninst Toolkits

Smarter, Better, Faster

5

Q2/3 2016 Q3 2016 2017

slide-12
SLIDE 12

New Developments in the Dyninst Toolkits

Dyninst 9.2 SD-Dyninst in main release

Smarter, Better, Faster

5

Q2/3 2016 Q3 2016 2017

slide-13
SLIDE 13

New Developments in the Dyninst Toolkits

Dyninst 9.2 SD-Dyninst in main release Dyninst 9.3 Better stack analysis Better line info

Smarter, Better, Faster

5

Q2/3 2016 Q3 2016 2017

slide-14
SLIDE 14

New Developments in the Dyninst Toolkits

Dyninst 9.2 SD-Dyninst in main release Dyninst 10.0 DWARF for relocated code SD-Dyninst Self-propelled Dyninst 9.3 Better stack analysis Better line info

Smarter, Better, Faster

5

Q2/3 2016 Q3 2016 2017

slide-15
SLIDE 15

New Developments in the Dyninst Toolkits

Testing and Robustness

6

Q2/3 2016 Q3 2016 2017

slide-16
SLIDE 16

New Developments in the Dyninst Toolkits

Dyninst 9.2 Move to github Fuzz testing DataflowAPI docs

Testing and Robustness

6

Q2/3 2016 Q3 2016 2017

slide-17
SLIDE 17

New Developments in the Dyninst Toolkits

Dyninst 9.2 Move to github Fuzz testing DataflowAPI docs Dyninst 9.3 Better test reports Better CI system

Testing and Robustness

6

Q2/3 2016 Q3 2016 2017

slide-18
SLIDE 18

New Developments in the Dyninst Toolkits

Dyninst 9.2 Move to github Fuzz testing DataflowAPI docs Dyninst 10.0 Ongoing improvements Dyninst 9.3 Better test reports Better CI system

Testing and Robustness

6

Q2/3 2016 Q3 2016 2017

slide-19
SLIDE 19

New Developments in the Dyninst Toolkits

Github and Community Engagement

  • Open bug tracker
  • Easier to verify contributions
  • Turnkey release system
  • Increased activity
  • Number of commits
  • Number of committers
  • Transparent discussions

7

slide-20
SLIDE 20

New Developments in the Dyninst Toolkits

Outside contributions (current and future)

  • Architecture-independent binary analysis
  • Improvements in continuous integration
  • Much code cleanup
  • External build and test machines
  • More and better bug reports
  • More collaborative bug fixes

8

slide-21
SLIDE 21

New Developments in the Dyninst Toolkits

Release 9.2.1

  • Line information fixes
  • Correctness (virtual functions, Fortran)
  • Speed
  • PPC64 rewriting fixes
  • Generate more robust intermodule calls
  • Crash bugs fixed
  • Windows stack walking fixes

9

slide-22
SLIDE 22

New Developments in the Dyninst Toolkits

Dyninst 9.3

  • PPC ABI v2
  • Uniform AT&T disassembly
  • ARM64 instruction semantics
  • Complete ParseAPI on ARM64
  • Windows rewriter

10

slide-23
SLIDE 23

New Developments in the Dyninst Toolkits

Fuzz testing instructions

  • Started in Dyninst 9.1
  • Integral in ARM implementation
  • Allowed rapid, accurate catch-up on x86

11

slide-24
SLIDE 24

New Developments in the Dyninst Toolkits

ARM semantics: interface

Provides overridable function for each element of semantic pseudocode:

  • Assignment
  • Bit field extraction
  • Sign/zero extension
  • Math
  • If/then/else
  • Register access
  • Memory access

12

slide-25
SLIDE 25

New Developments in the Dyninst Toolkits

ARM semantics: construction

Translate book pseudocode to ROSE policy class

  • Build Bison grammar from XML to C++
  • Start with elements for common instructions
  • Apply to ParseAPI
  • Iterate

13

slide-26
SLIDE 26

New Developments in the Dyninst Toolkits

Software info

  • Main project page: https://github.com/dyninst/

dyninst

  • Issue tracker
  • Releases and manuals
  • Coming soon: test results
  • LGPL
  • Contributions welcome

14