In GDB (GNU Debugger), you can use the ptype command to view the fields of a structure. The ptype command prints information about types, including detailed information for structures, unions, enums, and other composite types. Specifically for structures, ptype displays all fields and their types.
Specific Steps:
- Load GDB and the Program: First, load your C or C++ program in GDB. Assuming the executable is named
example, start GDB in the terminal using:shell
gdb example
shell2. **Set a Breakpoint**: To view structure details, set a breakpoint at an appropriate location so the program pauses there. For example, to inspect the structure at the start of the `main` function, use:
break main
shell3. **Run the Program**: Execute the program until it reaches the breakpoint:
run
shell4. **Use the `ptype` Command**: When the program is paused at the breakpoint, use the `ptype` command to view the structure definition. For example, if you have a structure type named `MyStruct`, input:
ptype MyStruct
shell### Example: Assume you have the following C code defining a structure: ```c typedef struct { int id; char name[50]; float salary; } Employee;
In GDB, use ptype Employee to view the structure definition. The output may appear as:
shelltype = struct Employee { int id; char name[50]; float salary; }
This shows that the Employee structure contains three fields: id (integer), name (character array), and salary (floating-point).
Notes:
- Ensure GDB has loaded the source code containing the structure definition before using
ptype. - If the structure is defined within a specific scope (e.g., inside a function), you must be in that scope's context to correctly view it with
ptype.
Using the ptype command is a direct and effective method for examining the composition of various data structures in your program, which is invaluable for debugging and understanding internal program structure.