Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Segmentation fault

Ответить
Настройки темы
Segmentation fault

Пользователь


Сообщения: 67
Благодарности: 1


Конфигурация

Профиль | Отправить PM | Цитировать


Доброго всем дня!

Интересная ошибка, не пойму как она возникает. А собственно происходить следующее. Машина стоит под Debian woody, на ней крутяться apache, ldap, mysql,pgsql,dns. После трех четырех дней работы, если например, стартую ftp localhost, в ответ выдает сабж. отдельно службы перестартовать не пробовал, делел всегда полную перезагрузку, после чего все становилось нормально. Будуть у Вас какие мнения по поводу вышеописанного.

С уважением,
Р.

-------
С уважением Naka из HoCo


Отправлено: 15:49, 21-11-2002

 

Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ужас!! у меня этот Segmentation Fault везде и повсюду.
В Mandrake при работе возникает с любыми прогами.
Ну а Debian я так и не смог нормально установить.
После dselect начинаеться распаковка пакетов, и бац! dpkg received Segmentation Fault.
От чего зависит это ошибка? Подскажите это имеет что либо общего с конфигурацией ПК?

Отправлено: 22:18, 09-08-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

glassMonk


Сообщения: n/a

Профиль | Цитировать


Интересно? А где вы его досталь, скачали?

Отправлено: 02:16, 10-08-2003 | #3


Старожил


Сообщения: 345
Благодарности: 0

Профиль | Отправить PM | Цитировать


Segmentation fault возникает тогда, когда прога выходит за пределы памяти, которые ей предоставила ОС. От конфигурации это не зависит, а зависит от программы (точнее ошибок в ней).
Код: Выделить весь код
int main(int argc, char *argv[]) {
  char buffer[4];
  strcpy(&buffer[0], argv[0]);
}
Если комптльнуть и запустить с параметром больше 4 букв то вылетит Segmentation fault

-------
Лучше молчать и казаться идиотом, чем заговорить и развеять сомнения...


Отправлено: 04:35, 10-08-2003 | #4

glassMonk


Сообщения: n/a

Профиль | Цитировать


Zur0
Раз ты залез немного в программирование, так вот что, у меня это не прокатывает я ввоже 7 символов молчит, а если ввести штук 12 то выдаст Segmentation fault.
Как это обьяснить?

Отправлено: 20:56, 10-08-2003 | #5


Старожил


Сообщения: 345
Благодарности: 0

Профиль | Отправить PM | Цитировать


glassMonk
Попробовал и я. Действительно в seg fault падает, не после 4, а после 8 (то есть на 8 мом).

Дело в том, что при запуске некой проги (да и отдельной функции), она во-первых, сохраняет адрес возврата. Адрес она сохраняет в первых 4х байтах
стека выделенного под эту прогу. Уже за этим участком выделеяется место для остальных переменных (Все локальные переменные хранятся в стеке). Т.е. чтобы выйти за границы стека нужно записать строку длинной размер буффера + 4  байта.

Если в данный пример запустить с параметром  4 < x < 8, то просто мы гробим данные, которые пренадлежат адресному пространству функции. Скорее всего мы гробим argc,argv

ЗЫ Извини если, что то криво объясняю. Просто сам только недавно увлекся данной темой, и еще много чего не понимаю/понимаю не до конца...

[s]Исправлено: Zur0, 20:10 11-08-2003[/s]

-------
Лучше молчать и казаться идиотом, чем заговорить и развеять сомнения...


Отправлено: 12:07, 11-08-2003 | #6

glassMonk


Сообщения: n/a

Профиль | Цитировать


Zur0
Ты попробуй создать массив на 100 елементов и увидиш что переполнение происходит не тогда когда 104 а когда штук 130 и больше. Получается чем больше масив тем больше ты можеш писать в него до вывода этой ошибки. Вот это меня и удивляет.

ps. пигиг ты понятно насчет этого не беспокойся.

Отправлено: 15:17, 11-08-2003 | #7


Старожил


Сообщения: 345
Благодарности: 0

Профиль | Отправить PM | Цитировать


glassMonk
Тогда Х.З. ... Может в "програмировании" этот вопрос задать?

-------
Лучше молчать и казаться идиотом, чем заговорить и развеять сомнения...


Отправлено: 22:22, 11-08-2003 | #8

glassMonk


Сообщения: n/a

Профиль | Цитировать


Да понимаю, я через некоторое врямя, эту инфу узнаю точно. Сейчас не очень нужно.
Но спрошу.
Слух я топик тогда перемещу в программирование ты разрешаеш?

naka
Ждем два дня после чего понимаю что НЕТ. И я спрашиваю.


Отправлено: 13:35, 12-08-2003 | #9


Старожил


Сообщения: 345
Благодарности: 0

Профиль | Отправить PM | Цитировать


glassMonk
Кажись разобрался. ГЦЦ по умолчанию выравнивает память по 2 двойным словам (вроде как), отсюда и рост длинны строки с размером буфера, при не кратных 8 числах...

[s]Исправлено: Zur0, 17:41 13-08-2003[/s]

-------
Лучше молчать и казаться идиотом, чем заговорить и развеять сомнения...


Отправлено: 07:58, 13-08-2003 | #10



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Segmentation fault

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
FreeBSD - apache2 - Segmentation fault (core dumped) xolod. Общий по FreeBSD 3 20-07-2009 23:09
5149: internal compiler error: Segmentation fault Jory Общий по FreeBSD 0 07-08-2007 18:58
Segmentation fault при запуске ./sams -d UTot Общий по Linux 2 01-08-2007 16:07
Apache + php и Segmentation fault Negativ Программное обеспечение Linux и FreeBSD 1 15-05-2007 21:34
Ошибка Segmentation Violation vvadim Microsoft Windows 95/98/Me (архив) 2 12-11-2004 10:56




 
Переход