1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み] gdb: 「シンボルテーブルがロードされない

2021-12-30 02:37:27

質問

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

しかし、エラーが発生します。

gdb: "No symbol table is loaded"

また、"-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)