Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

gdb не видит статическую библиотеку

12 views
Skip to first unread message

Michael Dukelsky

unread,
Feb 19, 2018, 1:44:59 PM2/19/18
to
Привет, 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

unread,
Feb 19, 2018, 2:34:59 PM2/19/18
to
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

unread,
Feb 19, 2018, 3:05:01 PM2/19/18
to
Привет, 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!

Eugene Grosbein

unread,
Feb 20, 2018, 3:24:59 AM2/20/18
to
19 февр. 2018, понедельник, в 22:32 NOVT, Michael Dukelsky написал(а):

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

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

Eugene

Valentin Nechayev

unread,
Feb 20, 2018, 5:04:59 AM2/20/18
to
Hi,

>>>> Michael Dukelsky wrote:

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

unread,
Feb 20, 2018, 12:05:00 PM2/20/18
to
Привет, 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!
0 new messages