Code examples used in the book Effective Debugging (Addison-Wesley, 2016)
Java C C++ Makefile Assembly R Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
asm
assert
atlas
cppunit
dbuild
deadlock
dlib
dlist
ex-ign
false-share
lock-contention
logging
long-string
lua
mclapply
modulo
omp-race Synchronize README files with the book contents Mar 11, 2016
pthread-race
resource-hogs
reverse
size
spin-wait
streams
synchronized
valgrind
.gitignore
LICENSE
README.md

README.md

Effective Debugging: Source Code

This repository contains the source code used in the book Effective Debugging (Addison-Wesley, 2016).

Chapter 1: High-Level Strategies

Item 7: Diversify Your Build and Execution Environment

Chapter 2: General-Purpose Methods and Practices

Item 12: Automate Complex Testing Scenarios

Chapter 4: Debugger Techniques

Item 31: Familiarize Yourself with Reverse Debugging

Item 33: Look for Errors by Examining the Values of Variables and Expressions

Item 37: Know How to View Assembly Code and Raw Memory

Chapter 5: Programming Techniques

Item 41: Add Logging Statements

Item 42: Use Unit Tests

Item 43: Use Assertions

Item 49: Fix the Bug's Cause, Rather Than Its Symptom

Chapter 6: Compile-Time Techniques

Item 50: Examine Generated Code

Item 51: Use Static Program Analysis

Item 52: Configure Deterministic Builds and Executions

Item 53: Configure the Use of Debugging Libraries and Checks

Chapter 7: Runtime Techniques

Item 57: Profile the Operation of Systems and Processes

Item 59: Use Dynamic Program Analysis Tools

Chapter 8: Debugging Multi-threaded Code

Item 60: Analyze Deadlocks with Postmortem Debugging

Item 61: Capture and Replicate

Item 62: Uncover Deadlocks and Race Conditions with Specialized Tools

Item 64: Investigate Scalability Issues by Looking at Contention

Item 65: Locate False Sharing by Using Performance Counters

Item 66: Consider Rewriting the Code Using Higher-Level Abstractions