Chapter 18 - Debugging

0.0(0)
Studied by 3 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/9

flashcard set

Earn XP

Last updated 8:45 PM on 12/8/22
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

10 Terms

1
New cards
phase
Testing ________ has two parts: prep, develop and execute tests (testing), if output unsuccessful- failure- new goal to find and remove bug (debugging)
2
New cards
Memory dump
________: printout of all registers and relevant memory locations is obtained and studied, slow and inefficient- hard to link back to source program, lots of data, only see state at one instant in time.
3
New cards
debugging
process of identifying failure, tracing bug, locate errors causing it and fixing the errors
4
New cards
watch points
see value of variables at particular points in time, use output statements, breakpoint execution
5
New cards
breakpoint categories
unconditional (inserted & execution stops here), conditional (if expression True, stop), temporary (happens once), internal (set by debugger)
6
New cards
single stepping
watch each executable line of code
7
New cards
backtracking
observe failure, find site of symptom of failure, trace back to highest abstraction in design collecting all code related to this, slowly isolate module using dataflow and find the bug (if you understand program logic it is effective
8
New cards
debugging guidelines
fresh thinking leads to good debugging (dont spend hours, take a break), dont isolate the bug from you colleagues (discuss the problem), dont modify code on first attempt, add test cases, regression testing is a must, design should be referred to before fixing the error
9
New cards
debuggers
illustrate dynamic nature of program, understand the program as well to find bugs, control the application to make it easier to test
10
New cards
types of debugging
kernel debugger, basic machine-level debugger, interpretive programming environment debugger