Fading Coder

One Final Commit for the Last Sprint

Inspecting GDB Symbol Tables on Linux via Compiler and CLI Utilities

When source code is compiled, human-readable identifiers such as function and variable names are transformed into memory addresses. A symbol table is a data structure produced during compilation that retains the mapping between these identifiers and their corresponding addresses, along with type inf...

Advanced GDB Debugging: Core Concepts and Command Reference

Stack Architecture and Frame Management When a program halts under GDB, the immediate concern involves understanding its current location and the execution path that led there. Each function invocation generates a stack frame (or activation record) containing the return address, passed arguments, an...

Resolving GDB Installation Failures Due to Package Conflicts in WSL

When attempting to install the GNU Debugger (GDB) within a Windows Subsystem for Linux (WSL) environment, you may encounter dependency conflicts that prevent successful installation. This guide outlines the error scenario and provides a resolution method. Installation Attempt and Error Output The st...

Analyzing Program Execution Flow Through Disassembly of main()

Compilation Stages of a Program Understanding the compilation process is essential. For a source file like helloworld.c, gcc transforms it through several intermediate stages: helloworld.c # Source code helloworld.i # Preprocessed source after macro expansion helloworld.S # Generated assembly code h...