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

lancet a nifty code editing tool
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

Lancet: A Nifty Code Editing Tool

Assembly programming has evolved..

2

slide-3
SLIDE 3

Lancet: A Nifty Code Editing Tool

Assembly programming has evolved..

3

slide-4
SLIDE 4

Lancet: A Nifty Code Editing Tool

Assembly programming has evolved.. But who cares when you can choose between a plethora of powerful software engineering tools?

;-)

4

slide-5
SLIDE 5

Lancet: A Nifty Code Editing Tool

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

slide-6
SLIDE 6

Lancet: A Nifty Code Editing Tool

Overview

  • the design of Lancet
  • functionality
  • user scenarios
  • future work

6

slide-7
SLIDE 7

Lancet: A Nifty Code Editing Tool

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

slide-8
SLIDE 8

Lancet: A Nifty Code Editing Tool

The design of Lancet Graphviz graphical interface graph layout rewriting framework

8

slide-9
SLIDE 9

Lancet: A Nifty Code Editing Tool

Functionality of Lancet feedback from underlying framework whole program

  • verview

clear presentation

  • f control flow

view different levels

  • f abstraction

9

slide-10
SLIDE 10

Lancet: A Nifty Code Editing Tool

Functionality of Lancet

10

slide-11
SLIDE 11

Lancet: A Nifty Code Editing Tool

Functionality of Lancet

11

slide-12
SLIDE 12

Lancet: A Nifty Code Editing Tool

Functionality of Lancet

12

slide-13
SLIDE 13

Lancet: A Nifty Code Editing Tool

Functionality of Lancet

13

slide-14
SLIDE 14

Lancet: A Nifty Code Editing Tool

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

slide-15
SLIDE 15

Lancet: A Nifty Code Editing Tool

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

slide-16
SLIDE 16

Lancet: A Nifty Code Editing Tool

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

slide-17
SLIDE 17

Lancet: A Nifty Code Editing Tool

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

slide-18
SLIDE 18

Lancet: A Nifty Code Editing Tool

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

slide-19
SLIDE 19

Lancet: A Nifty Code Editing Tool

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

slide-20
SLIDE 20

Lancet: A Nifty Code Editing Tool

Future work

  • present additional program analysis information
  • provide 'undo' functionality
  • integrate instrumentation & transformation

feedback

  • provide an interface for optimization reordering
  • ...

20

slide-21
SLIDE 21

Lancet: A Nifty Code Editing Tool

Questions?

http://www.elis.ugent.be/diablo

21