Saya terus mendapatkan pesan kesalahan ini ketika mencoba menambahkan breakpoint di gdb.
Saya telah menggunakan perintah ini untuk mengkompilasi:
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
Saya juga mencoba "-ggdb" daripada "-g" dan saya masih mendapatkan pesan kesalahan itu.
Saya kemudian menjalankan gdb:
$gdb
Di gdb:
(gdb)exec-file main.o
(gdb)break 59
No symbol table is loaded. Use the "file" command.
Jawaban:
Pertama-tama, yang Anda miliki adalah program yang sepenuhnya dikompilasi, bukan file objek, jadi jatuhkan
.o
ekstensinya. Sekarang, perhatikan apa yang dikatakan pesan kesalahan, itu memberitahu Anda dengan tepat bagaimana untuk memperbaiki masalah Anda: "Tidak ada tabel simbol yang dimuat. Gunakan perintah" 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)
Atau cukup teruskan program pada baris perintah.
$ 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)
sumber
Anda harus menambahkan parameter tambahan -g, yang menghasilkan informasi debug tingkat sumber. Ini akan terlihat seperti:
Setelah itu Anda dapat menggunakan gdb dengan cara yang umum.
sumber
Saya memiliki masalah yang sama dan saya mengikuti Posting ini , itu menyelesaikan masalah saya.
Ikuti 2 langkah berikut:
-O0
-ggdb
bendera saat menyusun program AndaSemoga berhasil!
sumber
Setiap kali
gcc
mesin kompilasi dan mesingdb
uji memiliki versi yang berbeda , Anda mungkin menghadapi ketidakcocokan format debuginfo .Untuk memperbaikinya, coba turunkan format debuginfo:
gcc -gdwarf-3 ... gcc -gdwarf-2 ... gcc -gstabs ... gcc -gstabs+ ... gcc -gcoff ... gcc -gxcoff ... gcc -gxcoff+ ...
Atau cocokkan
gdb
dengan yanggcc
Anda gunakan.sumber
Saya menemui masalah ini pagi ini karena saya menggunakan executable yang sama di OS
gcc -ggdb -Wall test.c -o test
YANG BERBEDA: setelah menyusun program saya dengan di Mac saya (10.15.2), saya menjalankangdb
dengan executable di Ubuntu (16.04) di VirtualBox saya.Perbaiki: kompilasi ulang dengan perintah yang sama di bawah Ubuntu, maka Anda akan baik-baik saja.
sumber