Presentation is loading. Please wait.

Presentation is loading. Please wait.

Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-4, 2011 Paradyn Project Deconstruction of Dyninst: Best Practices and Lessons Learned Bill.

Similar presentations


Presentation on theme: "Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-4, 2011 Paradyn Project Deconstruction of Dyninst: Best Practices and Lessons Learned Bill."— Presentation transcript:

1 Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-4, 2011 Paradyn Project Deconstruction of Dyninst: Best Practices and Lessons Learned Bill Williams

2 What is Componentization? Software Project Public Interface Neat Idea Deconstruction of Dyninst 2

3 Software Project Neat Idea What is Componentization? Public Interface Component Public Interface Component Deconstruction of Dyninst 3

4 Why Components? Expose existing functionality Build new tools easily Orthogonality Testability Improved code quality Deconstruction of Dyninst 4

5 Dyninst and the Components AST Binary Process Stackwalker API Stackwalker API Patch API Patch API Symtab API Symtab API DataFlow API DataFlow API Instruction API Parse API Parse API Code Gen Code Gen ProcControl API Binary = Existing Component = New Component = Proposed DyninstAPI

6 ParseAPI: Defining the component Block Edge Function Cached register liveness info Instrumentability InstPoints Dyninst CFG model Deconstruction of Dyninst 6

7 ParseAPI: Defining the component Block Edge Function Cached register liveness info Instrumentability InstPoints Dyninst extensionsParseAPI CFG model Deconstruction of Dyninst 7

8 PatchAPI: Refine your assumptions Deconstruction of Dyninst 8 PatchAPI Dyninst Paradyn

9 SymtabAPI: Creating good abstractions …hiding messy internals Great interface… Deconstruction of Dyninst 9 ELF PE XCOFF

10 InstructionAPI: Adding missing features Old: Control flow and not much else Deconstruction of Dyninst 10

11 InstructionAPI: Adding missing features New: control flow and data flow Deconstruction of Dyninst 11

12 ProcControlAPI: Build one to throw away Too many features, and I don’t need all of them! Deconstruction of Dyninst 12

13 ProcControlAPI: Build one to throw away Ah, something that just does what I need! Deconstruction of Dyninst 13

14 Stackwalker: When customers attack Dyninst requirements Call Stack Frame type Normal Optimized Signal handler Instrumentation Location 3 rd party Platform Linux Windows Solaris AIX Call Stack Frame type Normal Optimized Signal handler Location 1 st party 3 rd party Platform Linux BlueGene STAT requirements Deconstruction of Dyninst 14

15 DataflowAPI: Cool isn’t enough Customers: the difference between a module and a component Deconstruction of Dyninst 15

16 What we’ve learned Internal and external users driving interface design Test new interfaces Change code incrementally Keep your project’s details where they belong Deconstruction of Dyninst 16

17 Componentization Tradeoffs Stability vs. improvement Internal requirements vs. external requirements Development time vs. scope Structured vs. organic Early feedback vs. interface stability Deconstruction of Dyninst 17


Download ppt "Paradyn Project Paradyn / Dyninst Week Madison, Wisconsin May 2-4, 2011 Paradyn Project Deconstruction of Dyninst: Best Practices and Lessons Learned Bill."

Similar presentations


Ads by Google