Powered by
Conference Publishing Consulting

2015 IEEE 6th International Workshop on Program Comprehension through Dynamic Analysis (PCODA), March 2, 2015, Montréal, Canada

PCODA 2015 – Proceedings

Contents - Abstracts - Authors

2015 IEEE 6th International Workshop on Program Comprehension through Dynamic Analysis (PCODA)

Frontmatter

Title Page


Foreword
Welcome to the 6th International Workshop on Program Comprehension through Dynamic Analysis (PCODA’15), co-located with the 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2015). PCODA is a half-day workshop, to be held on March 2, 2015 at École Polytechnique de Montréal, Québec, Canada.

Dynamic Analysis for Program Comprehension

Parceive: Interactive Parallelization Based on Dynamic Analysis
Andreas Wilhelm, Bharatkumar Sharma, Ranajoy Malakar, Tobias Schüle, and Michael Gerndt
(TU München, Germany; Siemens, Germany)
The advent of multicore processors poses an urgent need for tools to parallelize legacy software. Automatic parallelization methods are usually limited to the instruction level or to simple loops. However, identifying parallelism in industrial applications additionally requires deep program comprehension. To solve this problem, we propose Parceive, an interactive tool that aids parallelization of software at various granularity levels. Parceive uses dynamic binary instrumentation to trace programs written in C/C++. The collected data dependencies and profiling information are then analyzed to visualize potential parallelization candidates. This approach helps developers to comprehend the application and to parallelize their software. In this paper, we motivate our approach, illustrate the architecture of Parceive, and highlight optimizations to cope with industrial applications. A case study shows the usefulness of our approach.

Symbolic Analysis of Assembly Traces: Lessons Learned and Perspectives
Raphaël Khoury
(Université du Québec à Chicoutimi, Canada)
In this study, we have developed a software to implement a symbolic analyzer for assembly traces. The software receives as input traces of assembly instructions. It then builds a symbolic expression characterizing the possible range of values for each variable and feeds this value to the Yices STM solver. The Yices solver returns possible concrete values that respect the symbolic expressions associated with each variable. This software has several potential applications including software testing and fuzzing and vulnerability detection. To verify the validity of our approach, we have tested our software with real-life traces and investigated its potential use for malware detection. For instance, that the software automatically detects the input values that would cause a buffer overflow in some cases. To conclude, we reflect on the lessons learned during the development of this software, which can help guide the future development of symbolic analyzers.

A Generalized Monitor Verdict for Log Trace Triaging
Simon Varvaressos, Kim Lavoie, Sébastien Gaboury, and Sylvain Hallé
(Université du Québec à Chicoutimi, Canada)
This paper introduces a new approach at classifying event traces with respect to some property expressed in Linear Temporal Logic generalizing the classical Boolean outcome. We produce from the evaluation of the formula on a given trace a data structure called a trace hologram. When such holograms are interpreted as equivalence classes, we show how manipulating them produce a clustering of event traces into various categories, depending on the precise way in which each group of traces violate the specification. The approach has been integrated into in an existing bug tracker in an entirely automated fashion, and experimented on a set of traces extracted from the execution of a real-world program.

Conceptual Interpretation of SQL Execution Traces for Program Comprehension
Nesrine Noughi and Anthony Cleve
(University of Namur, Belgium)
Modern data-intensive software systems manipulate an increasing amount of heterogeneous data usually stored in a database. Maintaining such systems became a crucial and complex task, which is especially true due to the lack of sufficient documentation. In this context, program comprehension became a primary and an important step in this task. Unfortunately, the highly dynamic nature of interactions between a system and its database makes it hard to analyze these interactions with static analysis techniques. To this end, we propose a novel approach that combines dynamic analysis techniques and visualization to ease understanding data-intensive systems, by focusing on their database manipulation behavior. The approach consists of defining the conceptual interpretation of SQL execution traces in terms of a domain-specific, platform-independent model.

proc time: 0.55