Search code examples
cgdb

gdb: "No symbol table is loaded"


I keep getting this error mesage when trying to add a breakpoint in gdb.

I've used these commands to compile:

gcc -g main.c utmpib2.c -o main.o
and:
cc -g main.c utmpib2.c -o main.o
and also:
g++ -g main.c utmpib2.c -o main.o

I also tried "-ggdb" instead of "-g" and I still get that error message.

I then execute gdb:

$gdb

In gdb:

(gdb)exec-file main.o
(gdb)break 59
No symbol table is loaded. Use the "file" command.

Solution

  • First of all, what you have is a fully compiled program, not an object file, so drop the .o extension. Now, pay attention to what the error message says, it tells you exactly how to fix your problem: "No symbol table is loaded. Use the "file" command."

    (gdb) exec-file test
    (gdb) b 2
    No symbol table is loaded.  Use the "file" command.
    (gdb) file test
    Reading symbols from /home/user/test/test...done.
    (gdb) b 2
    Breakpoint 1 at 0x80483ea: file test.c, line 2.
    (gdb) 
    

    Or just pass the program on the command line.

    $ gdb test
    GNU gdb (GDB) 7.4
    Copyright (C) 2012 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    [...]
    Reading symbols from /home/user/test/test...done.
    (gdb) b 2
    Breakpoint 1 at 0x80483ea: file test.c, line 2.
    (gdb)