1. ホーム
  2. c

[解決済み] gdb: "シンボルテーブルが読み込まれていません"

2022-01-29 06:12:40

質問

gdbでブレークポイントを追加しようとすると、次のようなエラーメッセージが表示されます。

これらのコマンドを使ってコンパイルしています。

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

また、"-g" の代わりに "-ggdb" も試してみましたが、やはりこのエラーメッセージが表示されました。

次にgdbを実行してみます。

$gdb

gdbで

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

解決方法は?

まず、あなたが持っているのは完全にコンパイルされたプログラムであり、オブジェクトファイルではありません。 .o という拡張子をつけてください。さて、エラーメッセージの内容に注目してください。 まさに シンボルテーブルが読み込まれていません。 file"コマンドを使用します。 ."

(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) 

または、コマンドラインでプログラムを渡すだけです。

$ 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)