Near-Omniscient Debugging for Java Using Size-Limited Execution Trace

Slides:



Advertisements
Similar presentations
How to Save Documents to a CD. Why do I need to know how to save or burn a CD? There is not unlimited storage space at TCS. This has become a problem.
Advertisements

Guide to Uploading Videos For staff needing to upload and save videos of students per Agency policy: AR7245b.
User Defined Functions
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Identifying Source.
Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
Instructions for using this template. To enter your questions and answers, click once on the text on the slide. Then highlight and just type over what’s.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extracting Code.
1 Integrating Influence Mechanisms into Impact Analysis for Increased Precision Ben Breech Lori Pollock Mike Tegtmeyer University of Delaware Army Research.
Visual Debugging Tools for Concurrent Models of Computation Elaine Cheong 15 May 2002 EE290N: Advanced Topics in System Theory.
Cmpt-225 Simulation. Application: Simulation Simulation  A technique for modeling the behavior of both natural and human-made systems  Goal Generate.
Instructions for completing the CTOP web survey for periodic reporting.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Measuring Copying.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Industrial Application.
.
Introduction to Systems Analysis and Design Trisha Cummings.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University A lightweight.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University What Kinds of.
Use THIS LINK to get to AutoDesk’s Educational webpage.THIS LINK.
Debugging in Java. Common Bugs Compilation or syntactical errors are the first that you will encounter and the easiest to debug They are usually the result.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Design and Implementation.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Applying Clone.
An Effective Method to Control Interrupt Handler for Data Race Detection Makoto Higashi †, Tetsuo Yamamoto ‡, Yasuhiro Hayase †, Takashi Ishio † and Katsuro.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University Dependence-Cache.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University VerXCombo: An.
Assigning a Drive Letter to a Flash Drive. Right Click My Computer Click Manage Computer Management Dialog Box Opens Under Storage Click Disk Management.
Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University July 21, 2008WODA.
Copyright © 2015 NTT DATA Corporation Kazuo Kobori, NTT DATA Corporation Makoto Matsushita, Osaka University Katsuro Inoue, Osaka University SANER2015.
The Software Development Process
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Structured Programming (4 Credits)
FOCUS II Demonstration Simply click the mouse to advance through the presentation. Or; Tap the right arrow key on the keyboard to advance through the slides.
Page 1 – Autumn 2009Steffen Vissing Andersen SDJ I1, Autumn 2009 Agenda: Java API Documentation Code Documenting (in javadoc format) Debugging.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
1.1: Objects and Classes msklug.weebly.com. Agenda: Attendance Let’s get started What is Java? Work Time.
1 Advanced.Net Debugging Using Visual Studio, R# and OzCode IT Week, Summer 2015.
Creating a Simple Game in Scratch Barb Ericson Georgia Tech May 2009.
Beyond Application Profiling to System Aware Analysis Elena Laskavaia, QNX Bill Graham, QNX.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Software Ingredients:
FOP: Multi-Screen Apps
E- Patient Medical History System
ICS 3UI - Introduction to Computer Science
Debugging and Troubleshooting Code
Naoya Ujihara1, Ali Ouni2, Takashi Ishio1, Katsuro Inoue1
CMIP5 Questionnaire Roadmap – beta
Do Developers Focus on Severe Code Smells?
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Lecture 10: More on Methods and Scope
Software Development Process
Boris Todorov1, Raula Gaikovina Kula2, Takashi Ishio2, Katsuro Inoue1
Chapter 5 Function Basics
Introduction to Systems Analysis and Design
Tatsuya Miyake Takashi Ishio Katsuro Inoue
Jipeng Huang, Michael D. Bond Ohio State University
Anilam 5000 / 6000 Series DXF import
Refactoring Support Tool: Cancer
Recommending Verbs for Rename Method using Association Rule Mining
POWERPOINT PRESENTATION
Objects First with Java A Practical Introduction using BlueJ
Explaining issues with DCremoval( )
On Refactoring Support Based on Code Clone Dependency Relation
Objects First with Java A Practical Introduction using BlueJ
Assignment Operators Topics Increment and Decrement Operators
Creating a Simple Game in Scratch
Chapter 5 Recursion.
CMPT 120 Lecture 19 – Unit 3 – Graphics and Animation
PADLA: A Dynamic Log Level Adapter Using Online Phase Detection
Presentation transcript:

Near-Omniscient Debugging for Java Using Size-Limited Execution Trace Kazumasa Shimari Osaka University Takashi Ishio NAIST Tetsuya Kanda Osaka University Katsuro Inoue Osaka University Thank you for coming. My name is Kazumasa Shimari. I am a Ph.D. student at Osaka University, Japan. I would like to talk about our tool, Near-Omniscient Debugging.

Insufficient information for debugging. Logging Execution Failure! Insufficient information for debugging. First, I explain the background. Logging is a common practice for debugging. Once the software starts the execution, it records log, log … so many logs. But, a log file is not always perfect. In this example, if the failure occurred at this point, the developer needs detailed behavior in this point, but there are no log messages. So this log file is insufficient to debug this failure. Log File

Omniscient Debugging Execution Record all instructions Visualize the data flow Replay the execution To deal with this problem, omniscient debugging is proposed. Its idea is very simple. Omniscient debugging records all software instructions in the execution. Using the log file, the developer can conduct detailed analysis such as visualizing the dataflow or replaying the execution. So, when the failure occurred at any point, developers can debug the problem. But this method is expensive because of log file size. One implementation records logs at 10MB/s, so it requires a huge storage. Log File Huge amount of logs (e.g.,10MB/s[1]) [1] Guillaume Pothier, Eric Tanter, and Jose Piquer. “Scalable omniscient debugging”. In Proc. of the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications , pp. 535--552, 2007.

Remove the log data for frequently executed instructions Log Reduction A log file contains many repetitions DaCapo Benchmarks[2] Some instructions are executed 10+ million times 66% of instructions are executed at most 64 times Remove the log data for frequently executed instructions So we would like to reduce the log file size. A log file is huge because it contains many repetitions. In case of DaCapo Benchmarks, some instructions are executed more than 10 million times. On the other hand, 66% of instructions are executed at most 64 times. From this observation, we remove the log data for repeated instructions. It significantly reduces the log file size while keeping logs for most of the instructions. [2] Blackburn et al. “The DaCapo Benchmarks: Java Benchmarking Development and Analysis”, : In Proc of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications, 2006

Near-Omniscient Debugging Proposed Recording Time Series void methodA (int var) { var = methodB(var); while (var > 0) var = methodC(var); System.out.println(var); } 1 1 2 16 17 18 19 2 3 5 7 9 11 13 15 17 4 6 8 10 12 14 16 18 19 Based on the idea, we propose “Near”-Omniscient Debugging. This is a small program. The left part is source code and right part is the execution order. In the conventional omniscient debugging, we record all instruction. but the recording size is very huge. So, in our near omniscient debugging, we record the latest information at each instruction. Using this technique, we can record information at all instructions. And our technique limits recording at repeated instructions. If we want to record more information at each instruction, we can change the recording buffer size at each instruction like this.

Near-Omniscient Debugging Proposed Recording Time Series void methodA (int var) { var = methodB(var); while (var > 0) var = methodC(var); System.out.println(var); } 1 1 2 2 3 5 7 9 11 13 15 17 15 17 4 6 8 10 12 14 16 14 16 18 18 19 19 maximum log file size : 12 And, if we know the number of instructions in the execution, we can control the maximum log size. In this example, there are six instructions, and each instruction has size two buffers. So the maximum log file size is twelve. That’s our near-omniscient debugging technique. 6 instructions * size 2 buffers

Near-Omniscient Debugging DaCapo Benchmarks[2] File size: 43.5GB → 4.1MB (max 64 times / inst.) Accuracy of data dependencies: precision 0.9, recall 0.8 We conducted an experiment with DaCapo Benchmarks and confirmed high reduction rate and high accuracy. Comparing with conventional omniscient debugging, our technique reduced the log file size 40GB to 4MB. The log file still keeps data dependencies with high accuracy. Precision is 0.9 and recall is 0.8.

Trace Viewer Show recorded variable values Demo At last, I explain our trace viewer. This viewer shows recorded variable values by hovering our mouse cursor on a highlighted variable. In this figure, hovering mouse cursor on a variable num1, we can see values. OK, I’ll show the actual viewer. This is getmax method. It takes three parameters and returns the maximum value of the given parameters. This method has been executed six times so hovering cursor shows the six values. If we want to focus on the particular execution, we can filter the execution from here by clicking this arrow. In this case, we focus on the last execution. After the clicking, we can see the filtered execution. Some highlightings disappeared because they are not executed in the filtered execution. We can focus on any interval.

Summary Near-Omniscient Debugging Recording Visualizing In summary, we propose near-omniscient debugging.

Our Demonstration Website Online Demo and tools are available! http://osku.jp/k0700 Online demo is available on our website. Thank you for listening.