New Features in Dyninst 5.1 - PowerPoint PPT Presentation

About This Presentation
Title:

New Features in Dyninst 5.1

Description:

New Features in Dyninst 5.1 Matthew LeGendre Ray Chen A Busy Year July 6, 2006 Dyninst 5.0 AMD64 Support Threaded Event Handling New fine-grained instrumentation ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 18
Provided by: RaySu4
Category:

less

Transcript and Presenter's Notes

Title: New Features in Dyninst 5.1


1
New Features in Dyninst 5.1
  • Matthew LeGendre
  • Ray Chen

2
A Busy Year
  • July 6, 2006 Dyninst 5.0
  • AMD64 Support
  • Threaded Event Handling
  • New fine-grained instrumentation system
  • . . .
  • Sep 22, 2006 Dyninst 5.0.1
  • Intel and Portland compiler support on AMD64
  • Bug Fixes
  • May 2007 Dyninst 5.1

3
Paradyn/Dyninst 5.1
  • Dyninst 5.1
  • SymtabAPI
  • Testsuite
  • Performance Optimizations
  • Catch-up
  • Paradyn 5.1
  • Paradyn as a Dyninst Client

4
The SymtabAPI
  • A library for parsing symbol information in
    binaries.
  • You dont need to understand binary formats
  • Cross-platform ELF, COFF, XCOFF, PE
  • Allows updating of binaries, write-back for ELF
    and XCOFF
  • XML Export
  • The first part in the DyninstAPI split

5
The Testsuite
  • Splits Dyninsts monolithic tests with
    micro-tests.
  • Better test coverage and easier to use
  • Runs a cross product of tests, compilers,
    mutatees, and dyninst run modes

./runTests test1_1 mutatee test1.mutatee_gcc
create_mode create result PASSED test1_1
mutatee test1.mutatee_gcc create_mode attach
result PASSED test1_1 mutatee
test1.mutatee_g create_mode create result
PASSED test1_1 mutatee test1.mutatee_g
create_mode attach result PASSED test1_1
mutatee test1.mutatee_g77 create_mode create
result PASSED test1_1 mutatee
test1.mutatee_g77 create_mode attach result
PASSED
6
Performance Optimizations
  • Generate efficient instrumentation
  • Turn of instrumentation components you dont need.

mov 0x8049630,eax mov eax,0xfffffffc(ebp)
addl 0x1,0xfffffffc(ebp) mov
0xfffffffc(ebp),eax
incl 0x8049630
7
Catch-Up
  • Use finalizeInsertionSetWithCatchup to insert
    instrumentation with Catch-up

int foo() printf(doing work) do_work()
return 0
8
Paradyn/Dyninst Split
  • Paradyn is now a proper client of Dyninst.

Paradyn
Dyninst
9
Many, Many Other Features
  • DWARF support on Solaris
  • New Dyninst manual
  • Shared memory library as a value added library
  • Memory Modification
  • New machine support
  • Bug fixes

10
Undocumented Feature
  • Debugging Dyninst
  • Ever had a problem with Dyninst?
  • Cant use Dyninst on Dyninst
  • Limited support for C
  • 19 Environment Variables
  • Dyninst checks for these at start
  • Strategic printf()s at milestones in code
  • Output to stderr

11
Debugging Environment Variables
  • Startup
  • DYNINST_DEBUG_STARTUP
  • DYNINST_DEBUG_PARSE
  • DYNINST_DEBUG_DWARF
  • Process Control
  • DYNINST_DEBUG_PROCCONTROL
  • DYNINST_DEBUG_FORKEXEC

12
Debugging Environment Variables
  • Dyninst Internal Threads
  • DYNINST_DEBUG_THREAD
  • DYNINST_DEBUG_MUTEX
  • DYNINST_DEBUG_MAILBOX
  • Mutatee Handling
  • DYNINST_DEBUG_INFRPC
  • DYNINST_DEBUG_STACKWALK
  • DYNINST_DEBUG_DYN_UNW
  • DYNINST_DEBUG_WRITE

13
Debugging Environment Variables
  • Instrumentation
  • DYNINST_DEBUG_INST
  • DYNINST_DEBUG_RELOC
  • DYNINST_DEBUG_AST
  • DYNINST_DEBUG_REGALLOC
  • DYNINST_DEBUG_CATCHUP
  • Miscellaneous
  • DYNINST_DEBUG_DBI
  • DYNINST_DEBUG_BPATCH

14
Example Use
  • gt
  • gt ./parseThat /bin/ls
  • Dyninst mutator terminated via signal 11.
  • Core file generated.

15
Example Use
  • gt setenv DYNINST_DEBUG_STARTUP
  • gt ./parseThat /bin/ls
  • ltsnipgt
  • UIprocess.C2461 Waiting for
  • bootstrapped state...
  • UIprocess.C2632 state bootstrapped
  • Getting initial thread...
  • Creating new BPatch_image...
  • BPatch_processBPatch_process, completed.
  • Dyninst mutator terminated via signal 11.
  • Core file generated.

16
Example Use
gt setenv DYNINST_DEBUG_BPATCH gt ./parseThat
/bin/ls ltsnipgt UI Calling char
getNameInt()... UI Finished call
getNameInt UI Calling getProceduresInt()... UI
Finished call getProceduresInt UI Calling
char getNameBuffer()... UI Finished call
getNameBuffer UI Calling void
BPatch_arithExprUn() Dyninst mutator terminated
via signal 11. Core file generated.
17
Output
  • Dont expect to understand output
  • Intended for DyninstAPI developer or advanced
    user
  • Expect us to request output from you
  • Makes remote debugging sessions easier
Write a Comment
User Comments (0)
About PowerShow.com