Presentation is loading. Please wait.

Presentation is loading. Please wait.

New Features in Dyninst 5.1

Similar presentations


Presentation on theme: "New Features in Dyninst 5.1"— Presentation transcript:

1 New Features in Dyninst 5.1
Matthew LeGendre Ray Chen

2 A Busy Year July 6, 2006 – Dyninst 5.0 Sep 22, 2006 – Dyninst 5.0.1
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 Paradyn 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 don’t 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 Dyninst’s 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 don’t need. mov 0x ,%eax mov %eax,0xfffffffc(%ebp) addl $0x1,0xfffffffc(%ebp) mov 0xfffffffc(%ebp),%eax incl 0x

7 Catch-Up Use finalizeInsertionSetWithCatchup to insert instrumentation with Catch-up int foo() { printf(“doing work”); do_work(); return 0; } Start Timer Stop Timer You Are Here

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 19 Environment Variables
Ever had a problem with Dyninst? Can’t 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 > > ./parseThat /bin/ls
* Dyninst mutator terminated via signal 11. * Core file generated.

15 Example Use > setenv DYNINST_DEBUG_STARTUP > ./parseThat /bin/ls
<…snip…> [UI]process.C[2461]: Waiting for bootstrapped state... [UI]process.C[2632]: state: bootstrapped Getting initial thread... Creating new BPatch_image... BPatch_process::BPatch_process, completed. * Dyninst mutator terminated via signal 11. * Core file generated.

16 Example Use > setenv DYNINST_DEBUG_BPATCH > ./parseThat /bin/ls
<…snip…> [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 Don’t expect to understand output
Intended for DyninstAPI developer or advanced user Expect us to request output from you Makes remote debugging sessions easier


Download ppt "New Features in Dyninst 5.1"

Similar presentations


Ads by Google