ID: cs/0309031

Timestamp Based Execution Control for C and Java Programs

September 17, 2003

View on ArXiv

Similar papers 3

Assertion checker for the C programming language based on computations over event traces

January 12, 2001

83% Match
Mikhail Auguston
Software Engineering
Programming Languages

This paper suggests an approach to the development of software testing and debugging automation tools based on precise program behavior models. The program behavior model is defined as a set of events (event trace) with two basic binary relations over events -- precedence and inclusion, and represents the temporal relationship between actions. A language for the computations over event traces is developed that provides a basis for assertion checking, debugging queries, execut...

Find SimilarView on arXiv

Instrumenting self-modifying code

September 16, 2003

83% Match
J. Maebe, Bosschere K. De
Software Engineering

Adding small code snippets at key points to existing code fragments is called instrumentation. It is an established technique to debug certain otherwise hard to solve faults, such as memory management issues and data races. Dynamic instrumentation can already be used to analyse code which is loaded or even generated at run time.With the advent of environments such as the Java Virtual Machine with optimizing Just-In-Time compilers, a new obstacle arises: self-modifying code. I...

Find SimilarView on arXiv

iReplayer: In-situ and Identical Record-and-Replay for Multithreaded Applications

April 4, 2018

83% Match
Hongyu Liu, Sam Silvestro, Wei Wang, ... , Liu Tongping
Operating Systems

Reproducing executions of multithreaded programs is very challenging due to many intrinsic and external non-deterministic factors. Existing RnR systems achieve significant progress in terms of performance overhead, but none targets the in-situ setting, in which replay occurs within the same process as the recording process. Also, most existing work cannot achieve identical replay, which may prevent the reproduction of some errors. This paper presents iReplayer, which aims t...

Find SimilarView on arXiv

A Valgrind Tool to Compute the Working Set of a Software Process

February 28, 2019

82% Match
Martin Becker, Samarjit Chakraborty
Performance

This paper introduces a new open-source tool for the dynamic analyzer Valgrind. The tool measures the amount of memory that is actively being used by a process at any given point in time. While there exist numerous tools to measure the memory requirements of a process, the vast majority only focuses on metrics like resident or proportional set sizes, which include memory that was once claimed, but is momentarily disused. Consequently, such tools do not permit drawing conclusi...

Find SimilarView on arXiv

Where Did My Variable Go? Poking Holes in Incomplete Debug Information

November 17, 2022

82% Match
Cristian Assaiante, Daniele Cono D'Elia, ... , Querzoni Leonardo
Programming Languages
Software Engineering

The availability of debug information for optimized executables can largely ease crucial tasks such as crash analysis. Source-level debuggers use this information to display program state in terms of source code, allowing users to reason on it even when optimizations alter program structure extensively. A few recent endeavors have proposed effective methodologies for identifying incorrect instances of debug information, which can mislead users by presenting them with an incon...

Find SimilarView on arXiv

FReD: Automated Debugging via Binary Search through a Process Lifetime

December 20, 2012

82% Match
Kapil Arya, Tyler Denniston, ... , Cooperman Gene
Software Engineering

Reversible debuggers have been developed at least since 1970. Such a feature is useful when the cause of a bug is close in time to the bug manifestation. When the cause is far back in time, one resorts to setting appropriate breakpoints in the debugger and beginning a new debugging session. For these cases when the cause of a bug is far in time from its manifestation, bug diagnosis requires a series of debugging sessions with which to narrow down the cause of the bug. For s...

Find SimilarView on arXiv

On-the-fly Query-Based Debugging with Examples

November 16, 2000

82% Match
Raimondas Lencevicius
Software Engineering
Programming Languages

Program errors are hard to find because of the cause-effect gap between the time when an error occurs and the time when the error becomes apparent to the programmer. Although debugging techniques such as conditional and data breakpoints help to find error causes in simple cases, they fail to effectively bridge the cause-effect gap in many situations. Query-based debuggers offer programmers an effective tool that provides instant error alert by continuously checking inter-obje...

Find SimilarView on arXiv

Faster Variational Execution with Transparent Bytecode Transformation

September 11, 2018

82% Match
Chu-Pan Wong, Jens Meinicke, ... , Kästner Christian
Programming Languages
Software Engineering

Variational execution is a novel dynamic analysis technique for exploring highly configurable systems and accurately tracking information flow. It is able to efficiently analyze many configurations by aggressively sharing redundancies of program executions. The idea of variational execution has been demonstrated to be effective in exploring variations in the program, especially when the configuration space grows out of control. Existing implementations of variational executio...

Find SimilarView on arXiv

A mathematical framework for automated bug localization

September 30, 2003

82% Match
Tsuyoshi Shizuoka University Ohta, Tadanori Shizuoka University Mizuno
Software Engineering

In this paper, we propose a mathematical framework for automated bug localization. This framework can be briefly summarized as follows. A program execution can be represented as a rooted acyclic directed graph. We define an execution snapshot by a cut-set on the graph. A program state can be regarded as a conjunction of labels on edges in a cut-set. Then we argue that a debugging task is a pruning process of the execution graph by using cut-sets. A pruning algorithm, i.e., a ...

Find SimilarView on arXiv

A Machine-Independent Debugger--Revisited

April 23, 1999

82% Match
David R. Hanson
Programming Languages
Software Engineering

Most debuggers are notoriously machine-dependent, but some recent research prototypes achieve varying degrees of machine-independence with novel designs. Cdb, a simple source-level debugger for C, is completely independent of its target architecture. This independence is achieved by embedding symbol tables and debugging code in the target program, which costs both time and space. This paper describes a revised design and implementation of cdb that reduces the space cost by ne...

Find SimilarView on arXiv