2021Unpublished venueRequires access

Conquering Debugging

Marc Gregoire

Open publisher page 0 citations

Abstract

This chapter provides concrete debugging guidelines and techniques. It begins with the fundamental law of debugging and bug taxonomies, followed by tips for avoiding bugs. Techniques for planning for bugs include error logging, debug traces, assertions, and crash dumps. Specific tips are given for debugging the problems that arise, including techniques for reproducing bugs, debugging reproducible bugs, debugging nonreproducible bugs, debugging memory errors, and debugging multithreaded programs. The chapter describes the major categories of memory errors. Each category lists different types of memory errors, including a small code example demonstrating each error, and a list of possible symptoms that the readers might observe. The most important rule when debugging is to reproduce the problem. Then, the readers can use a symbolic debugger, or log-based debugging, to track down the root cause.

About this research paper

What this paper is about

This chapter provides concrete debugging guidelines and techniques. It begins with the fundamental law of debugging and bug taxonomies, followed by tips for avoiding bugs. Techniques for planning for bugs include error logging, debug traces, assertions, and crash dumps. Specific tips are given for debugging the problems that arise, including techniques for reproducing bugs, debugging reproducible bugs, debugging nonreproducible bugs, debugging memory errors, and debugging multithreaded programs. The chapter describes the major categories of memory errors. Each category lists different types of memory errors, including a small code example demonstrating each error, and a list of possible symptoms that the readers might observe. The most important rule when debugging is to reproduce the problem. Then, the readers can use a symbolic debugger, or log-based debugging, to track down the root cause.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

This chapter provides concrete debugging guidelines and techniques. It begins with the fundamental law of debugging and bug taxonomies, followed by tips for avoiding bugs. Techniques for planning for bugs include error logging, debug traces, assertions, and crash dumps. Specific tips are given for debugging the problems that arise, including techniques for reproducing bugs, debugging reproducible bugs, debugging nonreproducible bugs, debugging memory errors, and debugging multithreaded programs. The chapter describes the major categories of memory errors. Each category lists different types of memory errors, including a small code example demonstrating each error, and a list of possible symptoms that the readers might observe. The most important rule when debugging is to reproduce the problem. Then, the readers can use a symbolic debugger, or log-based debugging, to track down the root cause.

Key concepts: Debugging, Debugger, Algorithmic program debugging, Computer science, Background debug mode interface, Programming language, Nexus (standard), Software bug

Related papers

Back to paper searchBrowse research topicsOriginal source
Conquering Debugging — Research Paper | ScholarLens