gdb (no debugging symbols found)

IDE, VCS и прочее

Модератор: Модераторы разделов

StanislavL
Сообщения: 80

gdb

Сообщение StanislavL »

Hi, All!
Давненько не брал я в руки шашек... А сейчас вот взял, и был неприятно удивлен сообщением "no debugging symbols found".
Извращений - НИКАКИХ! Все просто как дрова:
gcc -g -o example4 -lX11 example4.c
./example4 (падает)
gdb --core=core.example4
- и получаю то самое сообщение об отсутствии debugging symbols
Линух - Scientific 5.1 ~= классический RHEL , 32-битный

$ file example4
example4: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
Глазками его смотрю: вроде как символы внутрях имеются... И по размеру он почти втрое больше, чем если без -g компилить.

Вопрос: какого черта ему (gdb) еще надо ? Почему указания -g при компиляции стало недостаточно ?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: gdb

Сообщение Portnov »

А приведите точное сообщение, что говорит gdb? А то есть мысль, что с самим бинарником всё нормально, а символы не найдены для какой-нибудь библиотеки (libX11 той же, или ещё какой).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
StanislavL
Сообщения: 80

Re: gdb

Сообщение StanislavL »

ОК, делаем тупейший тест, чтоб Хы не поминать всуе...

[sl@ms tt]$ cat hellocore.c
#include <stdio.h>

int main() {
printf("Hello, core!\n");fflush(stdout);
printf("Hello, core %s\n",-1);
}
[sl@ms tt]$ gcc -g -o hellocore hellocore.c
[sl@ms tt]$ ./hellocore
Hello, core!
Segmentation fault (core dumped)
[sl@ms tt]$ gdb --core=core.hellocore.1269896991.18606
GNU gdb Red Hat Linux (6.5-25.el5rh)
Copyright © 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu".
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
Core was generated by `./hellocore'.
Program terminated with signal 11, Segmentation fault.
#0 0x006fbe0b in ?? ()
(gdb) bt
#0 0x006fbe0b in ?? ()
#1 0x006ce1ef in ?? ()
#2 0xffffffff in ?? ()
#3 0x0804852d in ?? ()
#4 0x0000000c in ?? ()
#5 0xbffa7d3c in ?? ()
#6 0xb7f20000 in ?? ()
#7 0x0068f1a4 in ?? ()
#8 0x00000000 in ?? ()
(gdb)


Причем, если запускаю из отладчика, то картина другая:

[sl@ms tt]$ gdb hellocore
GNU gdb Red Hat Linux (6.5-25.el5rh)
Copyright © 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".

(gdb) run
Starting program: /tmp/tt/hellocore
Hello, core!

Program received signal SIGSEGV, Segmentation fault.
0x006fbe0b in strlen () from /lib/libc.so.6
(gdb) bt
#0 0x006fbe0b in strlen () from /lib/libc.so.6
#1 0x006ce1ef in vfprintf () from /lib/libc.so.6
#2 0x006d38d3 in printf () from /lib/libc.so.6
#3 0x08048442 in main () at hellocore.c:5
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: gdb

Сообщение serzh-z »

StanislavL
"no debugging symbols found" относится к /lib/libc.so.6
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5405
ОС: Gentoo

Re: gdb

Сообщение /dev/random »

core-файл принято открывать так:

$ gdb программа core-файл

поскольку сам core-файл отладочных символов обычно не содержит, и ему надо их грузить откуда-то ещё.
Спасибо сказали:
StanislavL
Сообщения: 80

Re: gdb

Сообщение StanislavL »

/dev/random писал(а):
30.03.2010 17:07
$ gdb программа core-файл


Спасибо, помогло.

Хотя и непонятно слегка... N лет назад я запускал 'gdb --core=core', и он все распрекрасно находил сам. Да и сейчас - он ведь находит выполняемый файл без моей подсказки, что ему мешает оттуда символы считать ? Ну черт с ним, пускай остается на совести авторов.
Спасибо сказали: