LINUX.ORG.RU

gcc: ошибка сегментирования


0

0

Добрый день.

Использую RH7б 2.6.22 Скомпилил программу без хитрых опций gcc 4.1.1, всё собралось ок.

Запуская программу, система пишет "ошибка сегментирования". Что это значит? Как локализовать ошибку?


Надо читать K&R

anonymous
()

Это значит, что твоя программа полезла в чужой сегмент памяти. Возможно из-за кривого указателя, выхода за предел массива etc.

stassats ★★★★
()

> Что это значит?

Enjoy C(++)

> Как локализовать ошибку?

valgrind, mudflap

Nihilist
()
Ответ на: комментарий от Virun

Сорцы простые printf( "ddd\n" ); return( 0 ) Правда ещё включается масса *.h файлов из Minix3 и после return( 0 ) идёт код.

Мне кажется компилятор сделал бинарник, который операционка выполнить не может. Мне не понятно почему. Хитрых опций при компиляции нет.

Создаётся ощущение, что есть в *.h файлах миникса заданы препроцессорные директивы, которые заставляют gcc создавать не вменяемый бинарник. Может я ошибаюсь, толкните на путь истинный.

yantux
() автор топика

Кажется понял где копать. Всем спасибо за наводку.

yantux
() автор топика
Ответ на: комментарий от stassats

Что это значит?

/usr/bin/ld: errno: TLS definition in /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libc.a(errno.o) section .tbss mismatches non-TLS reference in /tmp/ccoXDU8m.o /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libc.a: could not read symbols: Bad value collect2: выполнение ld завершилось с кодом возврата 1

yantux
() автор топика
Ответ на: комментарий от anonymous

В исходниках нет ссылки на collect2

yantux
() автор топика
Ответ на: комментарий от yantux

> Он разве не находит тредовые функции? Он вроде не чтото другое ругается...

Ты физик что ли?

Что bt на корке показывает?

execve
()
Ответ на: комментарий от execve

С этим разобрался, gcc -o всё собирает. Прога стартует.

Теперь пытаюсь собирать с gcc -c затем ld На этапе линковки ld пишет:

/usr/bin/ld: errno: TLS definition in /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libc.a(errno.o) section .tbss mismatches non-TLS reference in /tmp/ccoXDU8m.o /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libc.a: could not read symbols: Bad value collect2: выполнение ld завершилось с кодом возврата 1

Что это значит?

yantux
() автор топика
Ответ на: комментарий от yantux

А исходники попостить, раз они такие простые - принципиально нельзя? Телепаты и правда в отпуске.

Очевидно или с либами вашими что-то не то или юзаете вы их как-то не так.

teferiincub
()
Ответ на: комментарий от teferiincub

>Очевидно или с либами вашими что-то не то или юзаете вы их как-то не так.

Исходников много. Я пытаюсь из Minix3 перенести mkfs.minix в ОС Linux.

yantux
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.