ID: cs/0011021

On-the-fly Query-Based Debugging with Examples

November 16, 2000

View on ArXiv

Similar papers 2

Efficient and Expressive Bytecode-Level Instrumentation for Java Programs

June 2, 2021

84% Match
Chukri Univ. Grenoble Alpes, Inria, CNRS, Grenoble INP, LIG, Grenoble, France Soueidi, Marius Univ. Grenoble Alpes, Inria, CNRS, Grenoble INP, LIG, Grenoble, France Monnier, ... , Falcone Yliès Univ. Grenoble Alpes, Inria, CNRS, Grenoble INP, LIG, Grenoble, France
Programming Languages
Software Engineering

We present an efficient and expressive tool for the instrumentation of Java programs at the bytecode-level. BISM (Bytecode-Level Instrumentation for Software Monitoring) is a light-weight Java bytecode instrumentation tool that features an expressive high-level control-flow-aware instrumentation language. The language is inspired by the aspect-oriented programming paradigm in modularizing instrumentation into separate transformers, that encapsulate joinpoint selection and adv...

Find SimilarView on arXiv

RuntimeSearch: Ctrl+F for a Running Program

July 25, 2018

84% Match
Matúš Sulír, Jaroslav Porubän
Software Engineering
Programming Languages

Developers often try to find occurrences of a certain term in a software system. Traditionally, a text search is limited to static source code files. In this paper, we introduce a simple approach, RuntimeSearch, where the given term is searched in the values of all string expressions in a running program. When a match is found, the program is paused and its runtime properties can be explored with a traditional debugger. The feasibility and usefulness of RuntimeSearch is demon...

Find SimilarView on arXiv

Proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003)

September 15, 2003

83% Match
Michiel Ronsse, Bosschere Koen De
Software Engineering
Programming Languages

Over the past decades automated debugging has seen major achievements. However, as debugging is by necessity attached to particular programming paradigms, the results are scattered. To alleviate this problem, the Automated and Algorithmic Debugging workshop (AADEBUG for short) was organised in 1993 in Link"oping (Sweden). As this workshop proved to be successful, subsequent workshops have been organised in 1995 (Saint-Malo, France), 1997 (again in Link"oping, Sweden) and 2000...

Find SimilarView on arXiv

GoTcha: An Interactive Debugger for GoT-Based Distributed Systems

September 7, 2019

83% Match
Rohan Achar, Pritha Dawn, Cristina V. Lopes
Distributed, Parallel, and C...
Software Engineering

Debugging distributed systems is hard. Most of the techniques that have been developed for debugging such systems use either extensive model checking, or postmortem analysis of logs and traces. Interactive debugging is typically a tool that is only effective in single threaded and single process applications, and is rarely applied to distributed systems. While the live observation of state changes using interactive debuggers is effective, it comes with a host of problems in d...

Find SimilarView on arXiv

The Bumpy Road of Taking Automated Debugging to Industry

December 2, 2022

83% Match
Rui Abreu
Software Engineering

Debugging is arguably among the most difficult and extremely time consuming tasks of the software development life cycle. Therefore, it comes as no surprise that researchers have invested a considerable amount of effort in developing automated techniques and tools to support developers excel in these tasks. Despite the significant advances, including demonstrations of usefulness, efficacy, and efficiency, these techniques are yet to find their way into industrial adoption. In...

Find SimilarView on arXiv

BOLD: An Ontology-based Log Debugger for C Programs

April 23, 2020

83% Match
Dileep Kumar P, Rupesh Nasre, Sreenivasa Kumar P
Software Engineering

The different activities related to debugging such as program instrumentation, representation of execution trace and analysis of trace are not typically performed in an unified framework. We propose \textit{BOLD}, an Ontology-based Log Debugger to unify and standardize the activities in debugging. The syntactical information of programs can be represented in the from of Resource Description Framework (RDF) triples. Using the BOLD framework, the programs can be automatically i...

Find SimilarView on arXiv

NPEFix: Automatic Runtime Repair of Null Pointer Exceptions in Java

December 23, 2015

83% Match
Benoit Cornu, Thomas Durieux, ... , Monperrus Martin
Software Engineering

Null pointer exceptions, also known as null dereferences are the number one exceptions in the field. In this paper, we propose 9 alternative execution semantics when a null pointer exception is about to happen. We implement those alternative execution strategies using code transformation in a tool called NPEfix. We evaluate our prototype implementation on 11 field null dereference bugs and 519 seeded failures and show that NPEfix is able to repair at runtime 10/11 and 318/519...

Find SimilarView on arXiv

Interactive Runtime Verification

May 15, 2017

83% Match
Raphaël Jakse, Yliès Falcone, ... , Pouget Kevin
Software Engineering

Monitoring is the study of a system at runtime, looking for input and output events to discover, check or enforce behavioral properties. Interactive debugging is the study of a system at runtime in order to discover and understand its bugs and fix them, inspecting interactively its internal state. Interactive Runtime Verification (i-RV) combines monitoring and interactive debugging. We define an efficient and convenient way to check behavioral properties automatically on a pr...

Find SimilarView on arXiv

Towards Practical and Useful Automated Program Repair for Debugging

July 12, 2024

82% Match
Qi Xin, Haojun Wu, ... , Xuan Jifeng
Software Engineering

Current automated program repair (APR) techniques are far from being practical and useful enough to be considered for realistic debugging. They rely on unrealistic assumptions including the requirement of a comprehensive suite of test cases as the correctness criterion and frequent program re-execution for patch validation; they are not fast; and their ability of repairing the commonly arising complex bugs by fixing multiple locations of the program is very limited. We hope t...

Find SimilarView on arXiv

A Case for Dynamic Reverse-code Generation to Debug Non-deterministic Programs

September 20, 2013

82% Match
Jooyong National University of Singapore Yi
Programming Languages
Software Engineering

Backtracking (i.e., reverse execution) helps the user of a debugger to naturally think backwards along the execution path of a program, and thinking backwards makes it easy to locate the origin of a bug. So far backtracking has been implemented mostly by state saving or by checkpointing. These implementations, however, inherently do not scale. Meanwhile, a more recent backtracking method based on reverse-code generation seems promising because executing reverse code can resto...

Find SimilarView on arXiv