LINUX.ORG.RU

Кто печатает 'segmentation fault'?


0

0

Добрый день,

Подскажите пожалуйста, кто именно печатает саркаментальную строчку «Segmentation fault» (в случае если никаких хендлеров sigsegv не ставилось)? Это libc? шелл?



Последнее исправление: pierre (всего исправлений: 1)

strings /lib/libc.so.6 | grep 'Segmentation fault'

Slavaz ★★★★★
()
Ответ на: комментарий от x4DA

> стандартная библиотека печатает.

шелл уж тут точно не причем;)

Ага, только наоборот. В libc живёт функция strsignal, поэтому и строка там. Но дёргает эту функцию шелл, когда видит, что процесс завершился по сигналу. Для проверки можно попробовать завернуть дырявую прогу в скрипт (не шелловский!) с fork-exec внутри и увидеть, что строка не напечатается.

const86 ★★★★★
()
Ответ на: комментарий от Slavaz

простите за невежество, но SIGSEGV разве перехватывается?

да

jtootf ★★★★★
()
Ответ на: комментарий от Slavaz

> простите за невежество, но SIGSEGV разве перехватывается?

Не перехватываются только KILL и STOP. А после SEGV даже можно сделать (sig)longjmp и продолжить работать как ни в чём не бывало.

const86 ★★★★★
()
Ответ на: комментарий от Boy_from_Jungle

Иногда нужно, при работе с отображаемыми файлами

Сам сталкивался когда работал с проприетарной криптографической библиотекой, она требовала чтобы файл был отображен весь целиком в память, причем иногда памяти требовалось очень сильно много (файлы были более 4х гб, а на машинках ОЗУ было всего 128-256Мб, и свопа около гига), поэтому пришлось извращаться - отображать кусочек, потом ловить SIGSEGV). Правда это было не доделано - библиотеку слава богу заменили на какую-то вменяемую. ;)

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

ДА иногда нужно согласен, я сам понял что в предыдущем посте фигню написал, хотя тоже приходилось сталкиваться

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