Software Carpentry logo

Debugging

April 24, 2010: We are pleased to announce that Version 4 of this course is now under development. For updates and an early peek at the content, please check out the Software Carpentry blog at http://www.software-carpentry.org/blog/.

1) Introduction

2) You Can Skip This Lecture If...

3) Key Themes

4) What's Wrong with Print Statements

5) Symbolic Debuggers

6) Debugger Features

A Debugger in Action:  Debug I/O Panel

Figure 5.1: A Debugger in Action: Debug I/O Panel

A Debugger in Action (2):  Stack Data Panel

Figure 5.2: A Debugger in Action (2): Stack Data Panel

7) Kinds of Debuggers

8) Integrated Development Environments

Source Browser:  Functions

Figure 5.3: Source Browser: Functions

9) Command-Line Debuggers

10) Inspecting Values

Inspecting Values

Figure 5.4: Inspecting Values

11) Controlling Execution

Programs As Data

Figure 5.5: Programs As Data

12) Inspecting More Values

13) Conditional Breakpoints and Watchpoints

14) Agans' Rules

15) Rule 0: Get It Right the First Time

16) Rule 1: What Is It Supposed to Do?

17) Rule 2: Is It Plugged In?

18) Rule 3: Make It Fail

19) Alternatives

20) Rule 4: Divide and Conquer

21) Rule 5: Change One Thing at a Time, For a Reason

22) Rule 6: Write It Down

23) Rule 7: Be Humble

24) Summary