Minimal Instrumentation for Software Feature Location Sharon Simmons Dennis Edwards Norman Wilde Eric Daniels.

Slides:



Advertisements
Similar presentations
Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
Advertisements

Android architecture overview
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Last update: August 9, 2002 CodeTest Embedded Software Verification Tools By Advanced Microsystems Corporation.
Critical Software Security Through Replication and Virtualization A Research Proposal Dennis Edwards Sharon Simmons Arangamanikkannan Manickam.
Linux vs. Windows. Linux  Linux was originally built by Linus Torvalds at the University of Helsinki in  Linux is a Unix-like, Kernal-based, fully.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Automatic Installation System on USB Memory Instructor: Hai Vortman Students: Leeor Langer Eyal Koren.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Figure 1.1 Interaction between applications and the operating system.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Operating Systems.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Senior Design May AbstractDesign Alex Frisvold Alex Meyer Nazmus Sakib Eric Van Buren Our project is to develop a working emulator for an Android.
Programming & Development of Mobile & Embedded Systems Lin Zhong ELEC424, Fall 2010.
Introduction Purpose Objectives Content Learning Time
TM Freescale, the Freescale logo, AltiVec, C-5, CodeTest, CodeWarrior, ColdFire, C-Ware, mobileGT, PowerQUICC, StarCore, and Symphony are trademarks of.
SIDDHARTH MEHTA PURSUING MASTERS IN COMPUTER SCIENCE (FALL 2008) INTERESTS: SYSTEMS, WEB.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Operating Systems Operating System
Introduction to HP LoadRunner Getting Familiar with LoadRunner >>>>>>>>>>>>>>>>>>>>>>
MetaMorph Installation. 2 MetaMorph Overview Imaging Toolbox What MetaMorph can do oAcquisition oDevice Control oVisualization oProcessing oAnalysis oPresentation.
OpenTS for Windows Compute Cluster Server. Overview  Introduction  OpenTS (academic) for Windows CCS  T-converter  T-microkernel  OpenTS installer.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Stimulsoft Reports.Net 20 Problems which Stimulsoft Reports.Net solves
1 3-General Purpose Processors: Altera Nios II 2 Altera Nios II processor A 32-bit soft core processor from Altera Comes in three cores: Fast, Standard,
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University DCCFinder: A Very- Large Scale Code Clone Analysis.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
Fall 2000M.B. Ibáñez Lecture 01 Introduction What is an Operating System? The Evolution of Operating Systems Course Outline.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Guide to Linux Installation and Administration, 2e1 Chapter 2 Planning Your System.
What’s New in Automated Software Testing and ClearQuest Shmuel Bashan IBM Rational
Computer Emergency Notification System (CENS)
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Operating Systems. Overview What is an Operating System (OS) What is an Operating System (OS) What Operating Systems do. What Operating Systems do. Operating.
® IBM Software Group © 2006 IBM Corporation PurifyPlus on Linux / Unix Vinay Kumar H S.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
Test Specifications A Specification System for Multi-Platform Test Suite Configuration, Build, and Execution Greg Cooksey.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
Chapter 1 : Overview of Computer and Programming By Suraya Alias
Overview of AIMS Hans Sherburne UPC Group HCS Research Laboratory University of Florida Color encoding key: Blue: Information Red: Negative note Green:
Imagine Creating Software Without a Single Line of Code!
 Programming - the process of creating computer programs.
Real-time Software. September 22, 2009GONG H-alpha Review2 Outline Platform Development Tools Applications Analysis Summary.
Full and Para Virtualization
Application Communities Phase II Technical Progress, Instrumentation, System Design, Plans March 10, 2009.
Summary We had used and the need to learn and implement using the software of Microsoft Visual Studio 2008 into our system upgrade. The report documents.
A Remote Collaboration Environment for Protein Crystallography HEPiX-HEPNT Conference, 8 Oct 1999 Nicholas Sauter, Stanford Synchrotron Radiation Laboratory.
Chapter 8: Installing Linux The Complete Guide To Linux System Administration.
Performance Testing Test Complete. Performance testing and its sub categories Performance testing is performed, to determine how fast some aspect of a.
Distributed Logging Facility Castor External Operation Workshop, CERN, November 14th 2006 Dennis Waldron CERN / IT.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary Copyright © 2009 Ericsson, Made available under the Eclipse Public License.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
The Team (L.E.V.A.X) – SS14-4G Supervisor ▫Dr. Loo Poh Kok Members ▫Mark Chua Zhi Wei ( ) ▫Pang Ching Yeow ( ) ▫Abdullah Ismail Bin Omar Sanat.
김민수 Cortex-M4 Processor - Getting Started with the GNU Compiler Collection(gcc)
OPERATING SYSTEMS DO YOU REQUIRE AN OPERATING SYSTEM IN YOUR SYSTEM?
Portal Software Unit Testing Supporting agile development of Sakai VRE enhancements Graham Klyne Oxford University Computing Service.
Qin Zhao1, Joon Edward Sim2, WengFai Wong1,2 1SingaporeMIT Alliance 2Department of Computer Science National University of Singapore
Virtualization With:. Virtualization With: What Kind of Virtualization? Full virtualization Platform Resource.
Computer System Structures
INTRO. To I.T Razan N. AlShihabi
Managing User Desktops with Group Policy
Introduction to Computers
Applications Active Web Documents Active Web Documents.
Introduction to Computers
W3 Status Analyzer.

Dynamic Binary Translators and Instrumenters
Presentation transcript:

Minimal Instrumentation for Software Feature Location Sharon Simmons Dennis Edwards Norman Wilde Eric Daniels

Software Reconnaissance Fall 2009 ShowcaseUWF - Simmons2 Where in this program is feature X implemented? 100’s KLOC, 10’s MLOC Modification required Interactions forgotten 2. Run tests with the feature Feature is active Feature is NOT active ~Set difference Solution: track execution 3. Compare what was executed 1. Run tests without the feature Components executed in the first group of tests, but not in the second group Marker Components Begin exploration here!

(demo of version 3) TraceGraph 4 Fall 2009 ShowcaseUWF - Simmons3 Row Instrumentation point Column test case Col 1 without feature Col 2+ with feature Identifies “markers” Gives big picture Subroutine (En… 0 be_aas_bspq3.c /research/ope… 147

Software Recon Status Fall 2009 ShowcaseUWF - Simmons4 Developed for several years at UWF –Stable, usable, and free –Published works enumerate benefits and limitations Brief Benefits –Identifies a small number of marker components –Identifies good places to start efficient code exploration –Can decrease software maintenance time

Instrumentation Alternatives Atom (Digital Equipment Corp) – Instrumentation at load time Pin (Intel Corp) – Instrumentation at dynamic link time CodeTEST (Freescale Semiconductor) – Instrumentation of preprocessed source code Recon (UWF) – Instrumentation of source code Gcov (GNU) – Instrumentation by (GNU) compiler Fall 2009 ShowcaseUWF - Simmons5 None completely successful

Problems Encountered Fall 2009 ShowcaseUWF - Simmons6 Newer systems time-sensitive Deadlines must be met Tracing can not be intrusive Target must execute normally Initialization was hours instead of minutes Deadlines were not met Tracing intrusive and prevented normal execution Hard / soft real-time Race conditions Timing faults

Instrument preprocessed source Efficient code coverage tracing Build IDB prior to execution Provide facilities to partition execution into intervals Simplify installation and use Fall 2009 ShowcaseUWF - Simmons7 Our Approach

Information Flow Fall 2009 ShowcaseUWF - Simmons8 Driver Collection Engine Target IDB Bitstring Traces Trace Records Data Joiner Source Instrumenter Interval Delimiter Test Cases During Compilation During Execution After Execution

MinInst Overview Fall 2009 ShowcaseUWF - Simmons9 Instrumentation point represented as bit – 1MB RAM ≈ 8.4M instrumentation points Ordered set of bits (bit string) represents code – Bit index identifies IDB record – Bit string cleared at interval start – Bit set when instrumentation point executed 0  not executed; 1  executed – Execution order not retained – Execution frequency not retained – Bit string saved at interval end

MinInst Details Fall 2009 ShowcaseUWF - Simmons10 Two bitstrings allocated in shared memory –Active (A): currently accessed by target –Passive (P): prepared for next interval Collection Engine –Started as first instruction in main() 1.Wait for signal (no overhead here) 2.Exchange A & P bitstrings (pointer swap) 3.Save P bitstring to trace file (I/O overhead) 4.Clear P bitstring for next interval 5.Go back to step 1

Version A Instruments C/C++ Linux platform CodeTEST – Identifies instrumentation points – Builds IDB MinInst – Inserts instrumentation code – Builds bit index  IDB map Driver – Delimits trace intervals – Performs test cases Collection Engine – Records bitstring trace at runtime Joiner – Combines IDB, MAP and bitstring trace – Creates usable trace file Fall 2009 ShowcaseUWF - Simmons11

Information Flow Fall 2009 ShowcaseUWF - Simmons12 Driver Collection Engine Target IDB Bitstring Traces Trace Records Data Joiner Source Instrumenter Interval Delimiter Test Cases During Compilation During Execution After Execution Map CodeTEST MinInst

Test Cases Generated Code – 1 file, simple functions (5 stmts, 5 inst pts) – 15KLOC, 30KLOC, 45KLOC, 60KLOC – CodeTEST: +200%MinInst: +11% Apache web server (httpd) – 550 files, 300KLOC, multithreaded, multiprocess – CodeTEST: +717%MinInst: +1% Openarena & OpenGL – 1K files, 700KLOC, time sensitive, multiplayer, networked – CodeTEST: +9371%MinInst: +6% Fall 2009 ShowcaseUWF - Simmons13

Shortcomings Complexity of use Reliance on CodeTEST CodeTEST failed some test cases Execution differences between platforms Licensed software Unsupported for a while Fall 2009 ShowcaseUWF - Simmons14

Version B Prototype written in C for C/C++ source – Removed CodeTEST dependency – Tested in Linux – Windows port is pending Simplified installation and use – Installation/removal scripts – Integrated into GCC/Make in Linux – Integrated into Visual Studio IDE Interval options – Timed or user controlled Fall 2009 ShowcaseUWF - Simmons15

Information Flow Fall 2009 ShowcaseUWF - Simmons16 Driver Collection Engine Target IDB Bitstring Traces Trace Records Data Joiner Source Instrumenter Interval Delimiter Test Cases During Compilation During Execution After Execution MinInst

Summary Version B status – Execution time unaltered from Version A – Linux and Windows XP – GCC and Visual Studio – Test cases in progress Next steps – Conclude test cases – Northrop Grumman large system testing – Complete distribution package Future Work – Modify TraceGraph for bit string operation Fall 2009 ShowcaseUWF - Simmons17

Information Flow Fall 2009 ShowcaseUWF - Simmons18 Driver Collection Engine Target IDB Bitstring Traces Source MinInst Interval Delimiter Test Cases During Compilation During Execution After Execution

Contact Information Sharon Dennis Norman Fall 2009 ShowcaseUWF - Simmons19