I can set a breakpoint in main and debug the code with the correct source code, but I don\'t know where GDB is taking the source code from.
The source code is not pr
This information is kept in the binary in the DWARF2 format. So, in order to see the DWARF2 information, you can use the dwarfdump utility. Needed information is kept in the DW_AT_comp_dir field.
Use the GDB "show directories" command to see the source search path.
Use
(gdb) show directories
If you don't know where those directories are set, check your .gdbinit file to see if there are statements like
directory /path/to/source
See also this other Stack Overflow question about GDB.
You can use the GDB command:
info source
Sample output:
Current source file is a.c
Compilation directory is /home/user/test
Located in /home/user/test/a.c
Contains 17 lines.
Source language is c.
Compiled with DWARF 2 debugging format.
Includes preprocessor macro info.
The binary is probably compiled with "-g" - i.e. debugging.