Category: Debugging

Systemic Software Debugging

Sponsor Advertisement

Systemic Software Debugging
  • Author: Per Mellstrand and Björn Ståhl
  • Format: PDF
  • Price: free

Systemic Software Debugging is a light-hearted introduction to the wonderful world of, well, systemic debugging, i.e. chasing down those pesky problems that you won’t find by single- stepping through ten lines of code or taking a peak at the back-trace of a core dump. The kinds of issues that seem to magically appear after software gets even a flicker of a chance to grow out of proportion, when the build system takes a life of its own or when you have to keep a ten year old release of a compiler around just because that was the one version that managed to produce a binary that almost lived up to expectations.

This work was initially written in 2009-2010 for the use as supplementary reading material part of a seminar- oriented course in systemic debugging with a target audience of engineers and senior engineers at Sony Mobile Communications (formerly Sony Ericsson), constrained to about 150 pages with the goal of introducing as much of the notion of the systemic side of debugging as possible. It is published in a free and open form (CC-BY-3.0) in the hopes that it might be useful to other curious souls out there.

Chapters include:

  • Demarcation
  • Software and Software-Intensive Systems
  • Cause and/of Panic
  • The Origin of Anomalies
  • Debugging Methodology
  • Software Demysti?ed
  • Hello, World. Is This a Bug?
  • Transforming Source Code into an Executable Binary
  • Developer and Development of High-Level Code
  • Source Code and the Compiler
  • Object Code and the Linker
  • Executable Binary and Loading
  • Executing Software and the Machine
  • Operating System and the Process
  • Principal Debugging
  • Why Analyze a System
  • Software System Analysis
  • System Views and Analysis Actions
  • Information Sources
  • The Software Analysis Conundrum
  • Analysis Imperatives
  • Tools of the Trade

http://systemicsoftwaredebugging.com/

No Bugs!: Delivering Error-Free Code in C and C++

Sponsor Advertisement

  • Author: David Thielen
  • Format: PDF
  • Price: free

Most developers know that software is inherently buggy.  And most developers also, hopefully, want to eliminate these bugs before shipping a product.  This book is written for these people.

However, writing code with no major bugs (sorry, we haven’t yet reached the point of truly bug-free code yet), is a team effort.  It takes the work of more than just the developers.  It takes testers,  managers, support personnel, and many more.  And this book is aimed at these people too.

This book is designed to solve a problem – buggy code.  Because it is aimed at the problem instead of a specific audience (ie, just developers or just testers), parts of this book may not be interesting to certain audiences.  Chapters 3 – 10 are written mainly for developers.  Chapters 11 & 12 are written mainly for testers.

Yet the book is written to be read straight through.  If you want to develop minimally buggy code, then you have to understand all of the pieces that go into getting there.  Developers need to understand the test process.  Testers need to understand what the developers will be testing on their own. Most importantly, the managers and others responsible  for insuring that the whole organization works need to understand the process.  And as important, they need to insure that the process is actually being followed.

Finally, this book is written from the Windows/DOS/PC perspective.  While most of the ideas discussed are generic to any computing platform, many of the implementations are specific to the PC.  And some of the code is specific not only to the PC, but to specific compilers (stack checking has a tendency to be that way).

If you program on a platform other than the PC, in a language other than c, you will still find this book valuable but you will also find that it leaves a lot more work for you to incorporate the ideas here.

While this is an older book, written in the Win95 era, the first 2 chapters are still very relevant to the programmers of today.

Chapters include:

  • Introduction
  • What is a bug?
  • General Principles
  • Some Basic Tricks
  • Assert the World
  • Debug Printfs
  • Watching the Stack
  • Watching the Heap
  • File I/O
  • Special Tricks for c++
  • Special Tricks for assembly language
  • The Testing Process
  • Shipping the Product
  • Useful bug-discovery tools
  • Debug Message Boxes
  • Debug Second Monitor

Get the Book: No Bugs!
Get the additional disk content