lancet a nifty code editing tool
play

Lancet: A Nifty Code Editing Tool Ludo Van Put, Bjorn De Sutter, - PowerPoint PPT Presentation

Lancet: A Nifty Code Editing Tool Ludo Van Put, Bjorn De Sutter, Matias Madou, Bruno De Bus, Dominique Chanet, Kristof Smits & Koen De Bosschere 1 Assembly programming has evolved.. 2 Lancet: A Nifty Code Editing Tool Assembly


  1. Lancet: A Nifty Code Editing Tool Ludo Van Put, Bjorn De Sutter, Matias Madou, Bruno De Bus, Dominique Chanet, Kristof Smits & Koen De Bosschere 1

  2. Assembly programming has evolved.. 2 Lancet: A Nifty Code Editing Tool

  3. Assembly programming has evolved.. 3 Lancet: A Nifty Code Editing Tool

  4. Assembly programming has evolved.. But who cares when you can choose between a plethora of powerful software engineering tools? ;-) 4 Lancet: A Nifty Code Editing Tool

  5. Program analysis and development Assembly code is still written and/or analyzed by ● embedded systems developers ● device driver developers ● compiler writers ● computer science students ● ... However, the available tools suffer from at least one of the following shortcomings: ● show only one level of abstraction ● linear list of instructions, control flow is unclear ● no program overview, calling context is unknown ● no feedback on changes made to the code ● ... 5 Lancet: A Nifty Code Editing Tool

  6. Overview ● the design of Lancet ● functionality ● user scenarios ● future work 6 Lancet: A Nifty Code Editing Tool

  7. Graphical user interface on top of Diablo ● Lancet is built on top of Diablo (http://www.elis.ugent.be/diablo) ● Diablo is an open source, retargetable link-time binary rewriting framework ● Spawned a program compaction tool (LCTES'04) , a OS kernel compactor (LCTES'05) , an instrumentation toolkit (PASTE'04) , a steganography tool (ICISC'04) ● Offers a rich collection of program analyses and transformations to be reused in Lancet 7 Lancet: A Nifty Code Editing Tool

  8. The design of Lancet graphical interface rewriting framework graph layout Graphviz 8 Lancet: A Nifty Code Editing Tool

  9. Functionality of Lancet view different levels clear presentation of abstraction of control flow feedback from whole program underlying framework overview 9 Lancet: A Nifty Code Editing Tool

  10. Functionality of Lancet 10 Lancet: A Nifty Code Editing Tool

  11. Functionality of Lancet 11 Lancet: A Nifty Code Editing Tool

  12. Functionality of Lancet 12 Lancet: A Nifty Code Editing Tool

  13. Functionality of Lancet 13 Lancet: A Nifty Code Editing Tool

  14. User scenarios What could you use this functionality for? → easy navigation through callgraph, control flow graphs, linker map → supervised editing of assembly code of bbl's → perform graph operations → visual profile feedback → graphical instrumentation interface → present program analysis information → display cfg's before/after/during optimization 14 Lancet: A Nifty Code Editing Tool

  15. User scenarios Program visualization and analysis (detect bottlenecks, teaching,...) → easy navigation through callgraph, control flow graphs, linker map → supervised editing of assembly code of bbl's → perform graph operations → visual profile feedback → graphical instrumentation interface → present program analysis information → display cfg's before/after/during optimization 15 Lancet: A Nifty Code Editing Tool

  16. User scenarios Program surgery (manual program edits supported by feedback) → easy navigation through callgraph, control flow graphs, linker map → supervised editing of assembly code of bbl's → perform graph operations → visual profile feedback → graphical instrumentation interface → present program analysis information → display cfg's before/after/during optimization 16 Lancet: A Nifty Code Editing Tool

  17. User scenarios Assist in development of new transformations (compiler research, ...) → easy navigation through callgraph, control flow graphs, linker map → supervised editing of assembly code of bbl's → perform graph operations → visual profile feedback → graphical instrumentation interface → present program analysis information → display cfg's before/after/during optimization 17 Lancet: A Nifty Code Editing Tool

  18. User scenarios Visualization and steering of transformations (interactive program optimization,...) → easy navigation through callgraph, control flow graphs, linker map → supervised editing of assembly code of bbl's → perform graph operations → visual profile feedback → graphical instrumentation interface → present program analysis information → display cfg's before/after/during optimization (future work: adapt transformations to enable interaction) 18 Lancet: A Nifty Code Editing Tool

  19. User scenarios Fine-grained, point-wise instrumentation (analysis, debugging, profiling, ...) → easy navigation through callgraph, control flow graphs, linker map → supervised editing of assembly code of bbl's → perform graph operations → visual profile feedback → graphical instrumentation interface → present program analysis information → display cfg's before/after/during optimization 19 Lancet: A Nifty Code Editing Tool

  20. Future work ● present additional program analysis information ● provide 'undo' functionality ● integrate instrumentation & transformation feedback ● provide an interface for optimization reordering ● ... 20 Lancet: A Nifty Code Editing Tool

  21. Questions? http://www.elis.ugent.be/diablo 21 Lancet: A Nifty Code Editing Tool

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend