Systemic Software Debugging

Systemic Software Debugging

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

Read Mirror

Leave a Reply

Your email address will not be published. Required fields are marked *