Discussion:
gdb не видит статическую библиотеку
(слишком старое сообщение для ответа)
Michael Dukelsky
2018-02-19 16:43:52 UTC
Permalink
Привет, All!

Не знаю, читает ли кто-нибудь эту эху, но всё равно спрошу. :) Никогда раньше
не занимался отладкой программ в линуксе, только в винде, поэтому вопрос
чайника.

Пытаюсь отладчиком ddd, запущенным для отладки hpt, зайти в функции из
libsmapi.a, прилинкованной к hpt. Однако, step выполняется как next и, что
делается в функции, я не вижу. Как hpt, так и smapi было собрано с -g -g3 и
содержат отладочную информацию. Однако, почему-то отладочная информация из
libsmapi в hpt не попала. Поэтому, когда я пытаюсь поставить контрольную точку
в одном из исходных файлов smapi, отладчик сообщает, что такого файла нет.
Пробовал записать исходники в /usr/src/debug/smapi/src и
(gdb) dir /usr/src/debug/smapi/src
(gdb) b /usr/src/debug/smapi/src/api_sdm.c
No source file /usr/src/debug/smapi/src/api_sdm.с

Как отладчиком зайти в функцию из этой libsmapi?

Желаю успехов, All!
За сим откланиваюсь, Michael.

... node (at) f1042 (dot) ru
Eugene Grosbein
2018-02-19 23:09:18 UTC
Permalink
19 февр. 2018, понедельник, в 19:43 NOVT, Michael Dukelsky написал(а):

MD> Hе знаю, читает ли кто-нибудь эту эху, но всё равно спрошу. :) Hикогда
MD> раньше
MD> не занимался отладкой программ в линуксе, только в винде, поэтому вопрос
MD> чайника.
MD> Пытаюсь отладчиком ddd, запущенным для отладки hpt, зайти в функции из
MD> libsmapi.a, прилинкованной к hpt.

Именно libsmapi.a, не libsmapi.so ?
Статическая линковка вместо динамической?

MD> Однако, step выполняется как next и, что
MD> делается в функции, я не вижу. Как hpt, так и smapi было собрано с -g -g3
MD> и

Собрано при помощи gcc? Что за флаг такой -g3?
Для отладки надо собирать с -g -O0.

MD> содержат отладочную информацию.

А команда file это подтверждает?

Попробуй пересобрать с динамической линковкой.

Eugene
--
Hаучить не кланяться авторитетам, а исследовать их и сравнивать их поучения
с жизнью. Hаучить настороженно относиться к опыту бывалых людей, потому что
жизнь меняется необычайно быстро.
Michael Dukelsky
2018-02-19 19:32:30 UTC
Permalink
Привет, Eugene!

20 Feb 18 02:09, Eugene Grosbein послал(а) письмо к Michael Dukelsky:

MD>> вопрос чайника. Пытаюсь отладчиком ddd, запущенным
MD>> для отладки hpt, зайти в функции из libsmapi.a, прилинкованной к
MD>> hpt.

Спасибо за быстрый ответ.

EG> Именно libsmapi.a, не libsmapi.so ?
EG> Статическая линковка вместо динамической?

Да.

MD>> Однако, step выполняется как next и, что
MD>> делается в функции, я не вижу. Как hpt, так и smapi было собрано
MD>> с -g -g3 и

EG> Собрано при помощи gcc?

Да.

EG> Что за флаг такой -g3?

Это максимальная отладочная информация.

EG> Для отладки надо собирать с -g -O0.

-О0 действует по умолчанию.

MD>> содержат отладочную информацию.

EG> А команда file это подтверждает?

Опа... Нет - stripped. Но я устанавливал пакет hpt-debuginfo. И существует
/usr/lib/debug/usr/bin/hpt.debug Наверно, проблема в том, что smapi-debuginfo
никакой отладочной информации не содержит. :-(

EG> Попробуй пересобрать с динамической линковкой.

Нет, мне хотелось бы оставить статическую библиотеку.

Желаю успехов, Eugene!
За сим откланиваюсь, Michael.

... node (at) f1042 (dot) ru
Eugene Grosbein
2018-02-20 12:01:30 UTC
Permalink
19 февр. 2018, понедельник, в 22:32 NOVT, Michael Dukelsky написал(а):

EG>> А команда file это подтверждает?
MD> Опа... Hет - stripped.

Оно может стрипаться на этапе install, проверь.

Eugene
Valentin Nechayev
2018-02-20 08:41:08 UTC
Permalink
Hi,
MD> Опа... Hет - stripped. Hо я устанавливал пакет hpt-debuginfo. И
MD> существует /usr/lib/debug/usr/bin/hpt.debug Hаверно, проблема в том,
MD> что smapi-debuginfo никакой отладочной информации не содержит. :-(

Отдельный пакет *-debuginfo означает подход, когда объектный файл делится на
основную часть без отладочной информации и отдельный файл отладочной
информации. gdb умеет такое подключать, но иногда не справляется с поиском
этого в путях.

Вот тут общий обзор проблемы с его стороны:
https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html

А что именно в smapi-debuginfo? Было бы крайне странно, что он не содержит
отладочной информации несмотря на своё название.


-netch-

... Спамы, куки...
Michael Dukelsky
2018-02-20 16:50:22 UTC
Permalink
Привет, Valentin!

20 Feb 18 11:41, Valentin Nechayev послал(а) письмо к Michael Dukelsky:

MD>> Опа... Hет - stripped. Hо я устанавливал пакет hpt-debuginfo. И
MD>> существует /usr/lib/debug/usr/bin/hpt.debug Hаверно, проблема в
MD>> том, что smapi-debuginfo никакой отладочной информации не
MD>> содержит. :-(

VN> Отдельный пакет *-debuginfo означает подход, когда объектный файл
VN> делится на основную часть без отладочной информации и отдельный файл
VN> отладочной информации. gdb умеет такое подключать, но иногда не
VN> справляется с поиском этого в путях.

VN> Вот тут общий обзор проблемы с его стороны:
VN> https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html

Спасибо! Полезная ссылка, стало понятнее.

VN> А что именно в smapi-debuginfo? Было бы крайне странно, что он не
VN> содержит отладочной информации несмотря на своё название.

-rw-rw-r--. 1 mike mike 1752 фев 19 18:04
smapi-debuginfo-2.5.20160316C-1.x86_64.rpm
Уже размер говорит кое о чём. Внутри
-r--r--r--. 1 mike mike 124 фев 19 00:00 CONTENTS.cpio
а в нём ничего нет. Пусто. Явно ошибка где-то в мейкфайлах. Буду разбираться.

Желаю успехов, Valentin!
За сим откланиваюсь, Michael.

... node (at) f1042 (dot) ru

Loading...