Перейти к содержанию

gdb и разделяемые библиотеки


Рекомендуемые сообщения

Доброго всем времени суток!

Может ли кто-нить обьяснить почему системный отладчик

некорректо работает с приложением, использующим разделяемые

библиотеки ?

делаю :

[user@work src]$ gcc -g file.c

[user@work src]$ gdb a.out

GNU gdb Red Hat Linux (6.0post-0.20040223.19rh)

Copyright 2004 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/tls/libthread_db.so.1".

(gdb) run

Starting program: /usr/home/user/src/a.out

Error while mapping shared library sections:

: Success.

Error while reading shared library symbols:

: No such file or directory.

Error while reading shared library symbols:

: No such file or directory.

Error while reading shared library symbols:

: No such file or directory.

Program exited with code 01.

(gdb) q

[user@work src]$

когда собираю тот же бинарник с ключом -static, всё нормально

отлаживается. В чём тут может быть причина ?

Ссылка на комментарий
Поделиться на другие сайты

Да как бы не похоже. Приложение исполняется без всяких

вопросов, но когда его надо отлаживать, то возникает такая хрень.

А какие переменные окружения стоит проверить или выставить?

Ссылка на комментарий
Поделиться на другие сайты

1. А как узнать какой файл добавлять в этот параметр ?

2. Все равно чё-то неправильно это так каждый раз запускать gdb.

Ссылка на комментарий
Поделиться на другие сайты

Цитата:

1. А как узнать какой файл добавлять в этот параметр?

Я так предпологаю, тот, который включается, т.е. библиотеку.

Ссылка на комментарий
Поделиться на другие сайты

Цитата:

Цитата:

1. А как узнать какой файл добавлять в этот параметр?

Я так предпологаю, тот, который включается, т.е. библиотеку.

Ну дык а где его имя посмотреть ?

Как узнать какой файл "No such file or directory"

Ссылка на комментарий
Поделиться на другие сайты

Мифическая зависимость :

$ldd a.out

linux-gate.so.1 => (0xffffe000)

libc.so.6 => /lib/tls/libc.so.6 (0x00ac8000)

/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00aaf000)

linux-gate.so.1 - файл, которого вобще нет нигде,

но без него приложение (и другие) исполнятся.

Может быть в нём причина этого косяка gdb, если да, как его

восстановить ?

Ссылка на комментарий
Поделиться на другие сайты

Я такую не видел. =(

Цитата:

[user@work src]$ gcc -g file.c

[user@work src]$ gdb a.out

GNU gdb Red Hat Linux (6.0post-0.20040223.19rh)

Copyright 2004 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/tls/libthread_db.so.1".

(gdb) run

Starting program: /usr/home/user/src/a.out

Error while mapping shared library sections:

: Success.

Error while reading shared library symbols:

: No such file or directory.

Error while reading shared library symbols:

: No such file or directory.

Error while reading shared library symbols:

: No such file or directory.

Program exited with code 01.

(gdb) q

[user@work src]$

А у меня все отлично работает. (???)

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Оказалось чего проще - скачать сырцы gdb и пересобрать -

родной видно чуток кривоват. Но - каждое решение плодит новые проблемы

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...