Here's a practical, minimal guide for using GDB in Ubuntu terminal — from launching to setting breakpoints and navigating your code. 🧰 Step 1: Compile with Debug Symbols Use -g and disable optimizations ( -O0 preferred for debugging): bash Copy Edit g++ -g -O0 -o myprog myprog.cpp 🚀 Step 2: Launch GDB bash Copy Edit gdb ./myprog You'll see a (gdb) prompt. 🎯 Step 3: Set Breakpoints You can set breakpoints in three main ways : ✅ a. At a function gdb Copy Edit (gdb) break main ✅ b. At a specific file and line gdb Copy Edit (gdb) break myprog.cpp:42 ✅ c. At a method in a class gdb Copy Edit (gdb) break MyClass::doSomething If the symbol is mangled (C++), GDB usually demangles automatically, especially if compiled with -g . ▶️ Step 4: Run the Program gdb Copy Edit (gdb) run 🧠Step 5: Navigate Command Meaning next or n Step over current line step or s Step into function call finish Run until current function returns continue or c Continue until...
There are various ways to represent null in C++. Here are a few examples: NULL: This is the standard way to represent null in C++. It is defined as a macro that expands to the value 0 . nullptr: This is a keyword that was introduced in C++11. It is a more explicit way to represent null, and it is guaranteed to be type-safe. 0: The value 0 can also be used to represent null. However, this is not a good practice, as it can be easily confused with other values, such as zero. std::optional: This is a class template that represents an optional value. It can be used to represent null values in a type-safe way. Here is a table that summarizes the different ways to represent null in C++: Way Description NULL The standard way to represent null in C++. It is defined as a macro that expands to the value 0 . nullptr A keyword that was introduced in C++11. It is a more explicit way to represent null, and it is guaranteed to be type-safe. 0 The value 0 can also be used to represent...