The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Особенности FreeBSD ??"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Особенности FreeBSD ??"
Сообщение от mikek emailИскать по авторуВ закладки on 28-Сен-01, 16:03  (MSK)
Если я добавляю эту функцию в сорцы (просто добавляю, я ее даже не вызываю), то Segmentation Fault

--------------
void make_crctable( void ) {
unsigned int i, j;
UCRC r;

for (i = 0; i <= 255; i++) {
r = i;
for (j = 8; j > 0; j--) {
if (r & 1) r = (r >> 1) ^ CRCPOLY;
else r >>= 1;
}
crctable[i] = r;
}
}
-------------

если же я ее заменяю на

--------------
void make_crctable( void ) {
}
-------------

то все работает.

И Все это только во FreeBSD, в Windows и в SUSE Linux все работает и так, и так.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Особенности FreeBSD ??"
Сообщение от Арлекин Искать по авторуВ закладки on 28-Сен-01, 16:36  (MSK)
Что значит не вызываю? Когда валится-то? До main() что-ли?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Особенности FreeBSD ??"
Сообщение от mikek emailИскать по авторуВ закладки on 28-Сен-01, 16:58  (MSK)
угу
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Особенности FreeBSD ??"
Сообщение от Арлекин Искать по авторуВ закладки on 28-Сен-01, 17:22  (MSK)
Не думаю, что это глюк ОСы.
Кто-то ( библиотеки какие-нить, например ) инициализируется во внешних сегментах, судя по всему, а компилер может пропустил ( глюкавый), может ты предупреждения ему удавил...
А вот модули по-разному строятся. Потому где-то идёт.
Не зная всего проекта трудно судить.

Ябы сделал тупо - закоментарил всё и открывал по логическим кусочкам.
Мне лично на первый взгляд не нДравится " crctable = r; "
Поставь заплатки и попробуй.
Я в основном в солярке трудЮсь, но такие фокусы тоже ловил.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Особенности FreeBSD ??"
Сообщение от mikek emailИскать по авторуВ закладки on 28-Сен-01, 18:55  (MSK)
Да я ее несколько раз пересобрал с нуля, у меня уже свой malloc, strdup, free.

Каждое обращение пишется в спец таблицы. и лог файлы. Я под SUSE все писал. А теперь вот под Фрю надо откомпилить. Уже неделю задницу от стула не отрываю.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Особенности FreeBSD ??"
Сообщение от mikek emailИскать по авторуВ закладки on 28-Сен-01, 18:57  (MSK)
[font size="1" color="#FF0000"]Последняя редакция от 28-Сен-01 18:58  ()[/font][p]А что касается

crctable = r;

то это кто-то квадратные скобки скушал.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Особенности FreeBSD ??"
Сообщение от Арлекин Искать по авторуВ закладки on 28-Сен-01, 20:06  (MSK)
Ну переписывать системные вызовы, я считаю не стоило, ибо только они "знают" как ИХ ОСь делает свои дела.
Я про другое писАл. У тя есть функция, которая ничего не валит если в ней нету тела. Так?
Значит глюк внутри функции.
Сначала я сделал бы так: (в моих текстах постоянно плюсы теряются )
void make_crctable( void ) {

         unsigned int i, j;
         UCRC r;
/*
         for (i = 0; i <= 255; i  ) {
         r = i;
         for (j = 8; j > 0; j--) {
         if (r & 1) r = (r >> 1) ^ CRCPOLY;
         else r >>= 1;
         }
         crctable = r;
         }
*/
      }
Если это пройдет, делаем так:

void make_crctable( void ) {
         unsigned int i, j;
         UCRC r;

         for (i = 0; i <= 255; i  ) {
         r = i;
         for (j = 8; j > 0; j--) {
;
/*
         if (r & 1) r = (r >> 1) ^ CRCPOLY;
         else r >>= 1;
*/
         }
//         crctable = r;
         }
         }

Плевать на результат - если main() получает управление можно сразу выходить по exit().
Продолжая таким образом, ты локализуешь область глюка.

Ну и не мешало бы глянуть, а нет ли функции с таким именем в подключенных библиотеках Фри. Черт его знает их компилер. У меня спарковский очень сильно местами не соответствует стандарту. И еще, ( спарковский так глючит ) не стОит собирать плюсовым компилером С-й код. Может и тут дырка.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: Особенности FreeBSD ??"
Сообщение от mikek emailИскать по авторуВ закладки on 01-Окт-01, 13:08  (MSK)
>Ну и не мешало бы глянуть,
>а нет ли функции с
>таким именем в подключенных библиотеках
>Фри.

     Именно в этом и дело. Спасибо, я разобрался.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру