Introduction
                                    
                                        Debug with Visual Studio Code
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        What you should know
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Using the exercise files in GitHub Codespaces
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solving challenges in CoderPad
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                1. What You're Up Against
                                    
                                        About debugging
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Compile-time errors
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Runtime errors
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Logical errors
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                2. Debugging without a Debugger
                                    
                                        Print statements
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Printing variable values
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Reporting code coverage
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Switching debug and verbose modes
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Debug with a knife in the woods
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                3. Common Debugger Tools
                                    
                                        The VS Code debugger
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Linting
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Breakpoints
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Variables view
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Watch view
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Call stack view
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Tracing and step execution
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Find and fix the bug
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                4. Debugging Compile-Time Errors
                                    
                                        Syntax errors
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Semantic errors
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Linker errors
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Get it to compile
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                5. Debugging Runtime Errors
                                    
                                        Segmentation faults
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Null pointer assignments
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Memory leaks
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Solution: Don't let it crash and burn
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                6. Low-Level Debugger Features
                                    
                                        Registers view
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Memory view
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Disassembly view
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                7. Writing Robust Code
                                    
                                        Defensive programming
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Erroring out
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Using assertions
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Handling exceptions gracefully
                                            
                                                ()