Странное поведение gdb

Мысли и размышления о развитии ОС Linux, открытого софта в целом, его общих свойствах, обсуждения всяких околопингвиньих новостей и баек.

Модераторы: Olej, adminn

Правила форума
Все сообщения не по теме форума будут, без каких либо уведомлений, удаляться, а их авторы - убираться из регистрации.
Язык сообщений - исключительно русский.
кипящий чайник
Интересующийся
Сообщения: 3
Зарегистрирован: 02 мар 2011, 19:34
Контактная информация:

Странное поведение gdb

Непрочитанное сообщение кипящий чайник » 03 мар 2011, 14:21

Линукс для меня платформа новая, но подкупающая в плане программирования. и всё же... Когда понадобилась отладка, начались проблемы. Программа на Си, компилируется в gcc.
Компилирую с флагом -g, как полагается. Запускаю прогу в gdb.
И тут же выяснятеся, что на команды b и l отладчик реагирует неадекватно.
Исходные файлы следующие:

main.c
maps.c
graphics.c

maps.h
graphics.h

В maps.c есть функция, которая ведёт себя не так, как мне хотелось бы. Хочу поставить там точки останова. Ввожу:
b maps.c:16

На что мне отвечают:
No source file named maps.c.
Make breakpoint pending on future shared library load? (y or [n])
- я отвечаю n, но, может, неправильно делаю?

В самом main останов ставится только на функцию main, а ставить на какую-либо строчку бесполезно, выводит следующее:
Note: breakpoint 1 also set at pc 0x80489e0.
Breakpoint 2 at 0x80489e0: file ../sysdeps/i386/elf/start.S, line 16.


И это явно не в файле main.c!

В ответ на команду l:
6 in ../sysdeps/i386/elf/start.S

Я уже делал папку с иходниками и программой рабочей директорией, но ничего не помогает. И никак не пойму, в чём же дело. Оно понятно, что нубьё, но согласно мануалу, всё должно работать.
Мой дистр Ubuntu 9.10.

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: Странное поведение gdb

Непрочитанное сообщение dmitriev » 07 мар 2011, 08:32

А вы в курсе, что в Ubuntu нельзя ничего компилировать и устанавливать из исходников?

Она рассчитана на установку .deb пакетов.

Там даже специальные фичи введены против любителей покомпилить.

Если вам нужен дистрибутив Linux для программирования и компилляции то советую Gentoo или Slackware.

кипящий чайник
Интересующийся
Сообщения: 3
Зарегистрирован: 02 мар 2011, 19:34
Контактная информация:

Re: Странное поведение gdb

Непрочитанное сообщение кипящий чайник » 08 мар 2011, 19:09

Ничего себе, очень приятно! Зачем же такой дистрибутив? То есть я с этим дистрибутивом могу забыть о программировании?

кипящий чайник
Интересующийся
Сообщения: 3
Зарегистрирован: 02 мар 2011, 19:34
Контактная информация:

Re: Странное поведение gdb

Непрочитанное сообщение кипящий чайник » 08 мар 2011, 19:25

Раз уж такая бодяга... Про слаку читал, и про генту читал, пробовать не хочу, нет времени с ними возиться. А в генту всё ПО компилируется, и это очень долго. А что можете сказать относительно Red Hat?

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: Странное поведение gdb

Непрочитанное сообщение dmitriev » 11 мар 2011, 09:31

То есть я с этим дистрибутивом могу забыть о программировании?
Нет, только нужно доустановить все необходимое.
Например все 3D эффекты в фильме Аватар делались в Ubuntu.

Что именно, подсказать не могу, потому что не знаю - я далек от программирования. Советую сходить на форум программистов. Погуглите - их много.
А что можете сказать относительно Red Hat
Такой операционки давно нет, из бесплатных клонов лучше всех Fedora, например наш отечественный RFRemix 14 http://fedoriada.ru. Есть еще клон CentOS, на нем сам Линус Торвальдс работает, предназначенный специально для ученых и разработчиков.

Очень советую Slackware (она сочетает простоту установки и возможность компилировать из исходников) - попробуйте для начала ее LiveCD Slax.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Странное поведение gdb

Непрочитанное сообщение Olej » 18 окт 2011, 14:33

dmitriev писал(а):А вы в курсе, что в Ubuntu нельзя ничего компилировать и устанавливать из исходников?

Она рассчитана на установку .deb пакетов.

Там даже специальные фичи введены против любителей покомпилить.
А вот это - очень странно слышать :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Странное поведение gdb

Непрочитанное сообщение Olej » 18 окт 2011, 15:10

кипящий чайник писал(а):Ничего себе, очень приятно! Зачем же такой дистрибутив? То есть я с этим дистрибутивом могу забыть о программировании?
А тема обсуждения получается - хорошая :mrgreen:

Проверяем:
- беру первый попавшийся исходник - попался сервер NTP:

Код: Выделить всё

olej@atom:/usr/src/ntp-4.2.6p3$ pwd                                                                                                            
/usr/src/ntp-4.2.6p3     
- конфигурируем - компилируем - инсталлируем ... всё, что положено :arrow: :

Код: Выделить всё

olej@atom:/usr/src/ntp-4.2.6p3$ time ./configure                                                                                               
...                                                                                                                                            
configure: creating ./config.status                                                                                                            
config.status: creating libopts/Makefile                                                                                                       
config.status: creating Makefile                                                                                                               
config.status: creating config.h                                                                                                               
config.status: config.h is unchanged                                                                                                           
config.status: executing depfiles commands                                                                                                     
real    1m32.255s                                                                                                                              
user    1m20.025s                                                                                                                              
sys     0m30.922s                                                                                                                              
olej@atom:/usr/src/ntp-4.2.6p3$ time make -j                                                                                                   
...                                                                                                                                            
real    0m7.355s                                                                                                                               
user    0m6.620s                                                                                                                               
sys     0m1.976s                                                                                                                               
olej@atom:/usr/src/ntp-4.2.6p3$ sudo make install                                                                                              
...                                                                                                                                            
- всё отлично встало, в чём убеждаемся:

Код: Выделить всё

olej@atom:/usr/src/ntp-4.2.6p3$ which ntpd                                                                                                     
/usr/local/bin/ntpd                                                                                                                            
- и возвращаем всё взад как было:

Код: Выделить всё

olej@atom:/usr/src/ntp-4.2.6p3$ sudo make uninstall                                                                                            
olej@atom:/usr/src/ntp-4.2.6p3$ which ntpd                  
olej@atom:/usr/src/ntp-4.2.6p3$ 

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: Странное поведение gdb

Непрочитанное сообщение Ali » 18 окт 2011, 19:52

Olej писал(а):....
- и возвращаем всё взад как было:

Код: Выделить всё

olej@atom:/usr/src/ntp-4.2.6p3$ sudo make uninstall                                                                                            
olej@atom:/usr/src/ntp-4.2.6p3$ which ntpd                  
olej@atom:/usr/src/ntp-4.2.6p3$ 
Точно, всё как было? ;)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Странное поведение gdb

Непрочитанное сообщение Olej » 18 окт 2011, 21:27

Ali писал(а):
Olej писал(а):....
- и возвращаем всё взад как было:

Код: Выделить всё

olej@atom:/usr/src/ntp-4.2.6p3$ sudo make uninstall                                                                                            
olej@atom:/usr/src/ntp-4.2.6p3$ which ntpd                  
olej@atom:/usr/src/ntp-4.2.6p3$ 
Точно, всё как было? ;)
Я не могу сказать гарантировано :-), но:
- на этом компьютере у меня заведомо не устанавливался ntpd (из репозитариев Ubuntu)...
- README пакета утверждает, что цель uninstall деинсталлирует то, что поставлено (это сверх того, что я раньше ещё в Makefile смотрел и нашёл эту цель)
- до инсталляции which на путях поиска не знает ntpd, после инсталляции - находит, после деинсталляции - снова нет...

... то, что после любой деинсталляции исходников остаются неустранённые "следы" типа записей в /etc/ld.so.conf.d или ld.so.cache - это да, бывает, но это ... дела привычные ;-) для машины для разработки, а не для эксплуатации :-o

В любом случае, проверено было, что в Ubuntu точно так же можно компилироваться и устанавливаться, как и в любом другом дистрибутиве... вопреки тому, что было сказано выше, в начале темы - а то я просто уже шёл с намерением снести нахрен Ubuntu, зачем мне такой дистрибутив? :lol:

Ответить

Вернуться в «Общий по Linux и открытому софту»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей