Hands on Debugging in C and C++
Hands on Debugging in C and C++, available at $19.99, has an average rating of 4.83, with 71 lectures, 1 quizzes, based on 168 reviews, and has 1080 subscribers.
You will learn about How to debug using a debugger like GDB How to detect memory leaks using valgrind How to log errors and get input from a running program. Learn additional debugging tools (sanitizers, tracing tools, and static analysis tools) This course is ideal for individuals who are Beginning C and C++ Programmers or Intermediate Programmers who need to learn debugging to save time! It is particularly useful for Beginning C and C++ Programmers or Intermediate Programmers who need to learn debugging to save time!.
Enroll now: Hands on Debugging in C and C++
Summary
Title: Hands on Debugging in C and C++
Price: $19.99
Average Rating: 4.83
Number of Lectures: 71
Number of Quizzes: 1
Number of Published Lectures: 71
Number of Published Quizzes: 1
Number of Curriculum Items: 72
Number of Published Curriculum Objects: 72
Original Price: $49.99
Quality Status: approved
Status: Live
What You Will Learn
- How to debug using a debugger like GDB
- How to detect memory leaks using valgrind
- How to log errors and get input from a running program.
- Learn additional debugging tools (sanitizers, tracing tools, and static analysis tools)
Who Should Attend
- Beginning C and C++ Programmers
- Intermediate Programmers who need to learn debugging to save time!
Target Audiences
- Beginning C and C++ Programmers
- Intermediate Programmers who need to learn debugging to save time!
Overview
**Newly revamped in 2024 with twice the content, and higher quality videos!**
In this course you will learn how to use the popular debugger GDB to find errors in your C and C++ code. Learning how to use a debugger will allow you to save time when finding errors and spend more time building better software. Being able to debug code is a necessary skill for all software developers to have, and you need nothing more than a terminal window to do so. The lessons learned from this course however will go behind the GDB debugger, and even show you a few other great tools like valgrind for finding bugs in your code.
Topics you’ll learn
Students should take this course if they want to learn:
-
How to use the popular GDB debugger
-
General debugging techniques, and why certain bugs occur
-
Some more advanced topics like reverse-debugging writing scripts for debugging not covered in other basic courses.
Why you should take this course?
Learning how to use a debugger will at first challenge conventional ‘printf’ debugging strategies that you may be able to get away with. But as you build larger software and work on software with larger teams, it will become essential to learn how to find and fix bugs. With this course and some practice, you will be able to work more quickly and save time fixing bugs, and then can spend your other efforts building great software. I can recall several instances when I first started working as a software engineer, and it took me weeks to find and fix a single bug. Had I better debugging skills at the time, I could have saved myself (and the company) a lot more time (and myself pain!). So unlock your full debugging potential by taking this course!
Who am I?
I have been teaching for over 10 years in universities and as a professor. I have worked in industry in big companies, startups, and as a consultant. I am looking forward to being your instructor for this course, and I hope you will get great value out of the lessons learned!
Course Curriculum
Chapter 1: Introduction
Lecture 1: Introduction to Debugging
Lecture 2: A Working Example in GDB
Lecture 3: Course Objectives
Lecture 4: A story about the first bug
Lecture 5: Write your code neatly!
Lecture 6: GDB for D, Objective-C, OpenCL, Rust, etc?
Lecture 7: Resources
Chapter 2: Setup
Lecture 1: GDB (linux), LLDB (Mac), or Visual Studio (Windows)
Lecture 2: GDB on Linux (and lldb)
Lecture 3: GDB on Windows Subsystem for Linux
Lecture 4: LLDB on Mac
Chapter 3: Utilizing the Compiler as a Debugger – Respecting the Compiler
Lecture 1: Compile-time vs Run-time debugging
Lecture 2: Compiler Errors
Lecture 3: Compilers cannot read our minds
Lecture 4: Treat Compiler Warnings (-Wall, -Werror, and -Wconversion) as Errors (Use C++ {}
Lecture 5: Trick: Leveraging multiple compilers
Lecture 6: Tip: Write your code neatly
Chapter 4: Your First Debugging Technique – printf
Lecture 1: A Debugging Exercise (swap_buggy)
Lecture 2: printf debugging (std::cout, console.log)
Lecture 3: printf debugging (one more look) with DEBUG
Chapter 5: Using a Debugger
Lecture 1: GNU Debugger (GDB) – The Basics
Lecture 2: Why We Compile with Debug Symbols (-g)
Lecture 3: Printing Values and Listing Source Code
Lecture 4: Figuring out a Variable Type with 'whatis'
Lecture 5: Breakpoints (br and info) and Continue (c)
Chapter 6: GDB Text User Interface (TUI)
Lecture 1: GDB the Text User Interface (TUI)
Lecture 2: Redirecting output from GDB (to another file or terminal)
Lecture 3: Conditional Breakpoints
Lecture 4: More ways to continue and step through code (advance, and until)
Lecture 5: Watching (watch and rwatch) Variables
Lecture 6: Breakpoints Part 2 (enable, disable, and save breakpoint)
Lecture 7: Display and undisplay
Lecture 8: Getting help in GDB (info)
Chapter 7: Foundations of Processes and Debugging Common Memory Errors
Lecture 1: The Program Stack
Lecture 2: What is a Call Stack?
Lecture 3: Navigating the Call Stack with Backtrace
Lecture 4: [Concept] Understanding common errors – the segmentation fault
Lecture 5: [Exercise] Segmentation Fault
Lecture 6: [Solution] Segmentation Fault
Lecture 7: [Concept] Understanding common errors – the memory leak
Lecture 8: Understanding common errors – Stack Overflow
Lecture 9: [Exercise] Memory Leak (And the address sanitizer)
Lecture 10: [Solution] Memory Leak (And the address sanitizer)
Chapter 8: Debugging Techniques
Lecture 1: [Theory] Delta Debugging Technique
Lecture 2: Bug prevention – assert statement and static_assert
Lecture 3: Investigating Code by Calling functions within GDB
Lecture 4: Attaching the Debugger to a Running Process
Lecture 5: Core dumped — and how to look at those files.
Lecture 6: Core dumped — gcore for a running process
Lecture 7: Examining Memory in GDB (and also hex)
Chapter 9: GDB Commands, Scripts, and Workflow
Lecture 1: Breakpoints and commands — save time!
Lecture 2: define your own commands
Lecture 3: gdb scripts
Lecture 4: Shell commands within GDB (shell, make, and pipe)
Lecture 5: Edit source files within GDB
Chapter 10: GDB and Python Basics
Lecture 1: Check and Setup GDB with Python (from source)
Lecture 2: Using Python within GDB
Chapter 11: Experimental and Advanced Debugging Techniques
Lecture 1: Set a variable value
Lecture 2: Reverse Debugging
Lecture 3: Debugging Multi-Threaded Programs
Lecture 4: Bookmarks and Checkpoints (Save a snapshot of your program)
Chapter 12: More Interactive Debugging
Lecture 1: GDB Debug Cycle — Rerunning and reviewing software
Chapter 13: Other useful Debugging Tools
Lecture 1: DDD – Data Display Debugger
Lecture 2: strace and ltrace
Lecture 3: Installing and Using valgrind 3.19 (pronounced val-grinn)
Lecture 4: Using Valgrind and GDB together to fix a segfault and memory leak
Lecture 5: cppcheck and Weffc++
Chapter 14: Going Further with GDB Extra Features
Lecture 1: Inspecting the Virtual Table for Inheritance (C++)
Chapter 15: Debugger Internals
Lecture 1: GDB Command Debug Levels
Chapter 16: Conclusion
Lecture 1: The Conclusion and Your Next Steps
Chapter 17: Other Languages
Lecture 1: DLang
Instructors
-
Mike Shah
Mike Shah, Ph.D.
Rating Distribution
- 1 stars: 1 votes
- 2 stars: 3 votes
- 3 stars: 20 votes
- 4 stars: 58 votes
- 5 stars: 86 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024
- Top 10 Gardening Courses to Learn in November 2024