Автор | Сообщение |
|
| |
Пост N: 10
Зарегистрирован: 25.07.06
|
|
Отправлено: 09.08.06 19:21. Заголовок: Плавающий GPF (чтоб его...)
Исходные Clipper 5.2e + CT3 + SIX3.0 + Blinker7.0 (Dual mode) OS WinXP (Pro) + SP2 Возникает сабж типа BLX286 : 1313 : exception error 0D : general protection fault, code = 0000h ну и дальше дамп... Основная неприятность, что сабж плавающий (в пределах одной процедуры). Сейчас запустил вылетело, запустил еще раз - прошло дальше и снова вылетело. Запустил еще раз - прошло до конца. Перед тем, как разбираться с дампом, хотелось бы выяснить следующие вопросы: 1 Кто сталкивался с подобной ситуацией и как боролся? 2 Какие могут быть причины возникновения такой проблемы?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 10.08.06 09:24. Заголовок: Re:
Была такая проблема при : 1) интенсивном вычислении макроопределений с созданием по ходу выполнения новых PRIVATE переменных или массивов. 2) при передаче PUBLIC переменных в качестве параметров функций по ссылке. Вылечилось после отказа от подобных методов.
|
|
|
|
| |
Пост N: 24
Зарегистрирован: 08.07.06
|
|
Отправлено: 10.08.06 14:08. Заголовок: было такое...
вылетало ни с того, ни с сего при вызове в protected mode функции, требующей параметр определенного типа. Например: при вызове x:=DIRECTORY(myDir) если тип myDir не строковый, а к примеру (из-за ошибки) тип дата, получается 100% GPF Короче так: ТОЧНО ПРОВЕРЯЙ ПАРАМЕТРЫ передаваемые в вызываемую функцию.
|
|
|
|
| постоянный участник
|
Пост N: 51
Зарегистрирован: 24.09.05
|
|
Отправлено: 16.08.06 18:39. Заголовок: Re:
alexmar пишет: цитата: | Возникает сабж типа BLX286 : 1313 : exception error 0D : general protection fault, code = 0000h ну и дальше дамп... |
| Так дамп, милейший - это не мусор. Смотришь адрес ошибки и определяешь по MAP процедуру, которая его вызвала. При этом, определять надо глазами, стандартая утилита из поставки блинкера - слепая или врёт. alexmar пишет: цитата: | Основная неприятность, что сабж плавающий (в пределах одной процедуры). 1 Кто сталкивался с подобной ситуацией и как боролся? 2 Какие могут быть причины возникновения такой проблемы? |
| 1. Способ один - заменить плохой код на хороший 2. Плохо написанный код. Довольно часто - неинициализированные указатели или ваще бредовый код. Отсутствие проверки корректности параметров. В потроха клиппер заглянешь - там просто кошмар, за такое руки надо рубить.
|
|
|
|
| |
Пост N: 13
Зарегистрирован: 25.07.06
|
|
Отправлено: 18.08.06 20:19. Заголовок: Re:
suv2 пишет: Подтвердилось. В данном конкретном случае виноватой оказалась функция RemRight() из CT III. Подозреваю, что не одна она может глючить , так как еще раньше была замечена некорректная работа клонов функции Pad() Поэтому, если кто-нить уже вылавливал такие функции, поделитесь списком, пожалуйста, дабы не наступать на чужие грабли.
|
|
|
|
| |
Пост N: 337
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.08.06 20:35. Заголовок: Re:
alexmar KEYSEC()
|
|
|
|
| |
Пост N: 20
Зарегистрирован: 25.07.06
|
|
Отправлено: 06.09.06 11:51. Заголовок: Re:
Dima пишет: Заметано
|
|
|
|
| постоянный участник
|
Пост N: 188
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.09.06 14:24. Заголовок: Re:
Мое мнение такое. Лучше вообще не пользоваться функциями из CT, без которых в принципе можно обойтись. Например, есть любители, которые используют строковые функции из CT, в то время когда легко тоже самое сделать с помощью стандартных строковых функций Clipper. Включать "чужие" функции или библиотеки без наличия их исходного кода нужно только в крайней необходимости. Чем меньше контролируемого вами кода, тем надежнее работает программа.
|
|
|
|
| |
Пост N: 22
Зарегистрирован: 25.07.06
|
|
Отправлено: 06.09.06 15:48. Заголовок: Re:
Григорьев Владимир пишет: цитата: | Чем меньше контролируемого вами кода, тем надежнее работает программа |
|
С эти согласен. Григорьев Владимир пишет: цитата: | Лучше вообще не пользоваться функциями из CT, без которых в принципе можно обойтись. |
| Свое "колесо" оно, конечно, круглее Но в случае, когда нужно быстро написать прикладную программу изобретение своих велосипедов в условиях цейтнота грозит невыполнением в срок задания и, как следствие, недополучением масла к хлебу Григорьев Владимир пишет: цитата: | Включать "чужие" функции или библиотеки без наличия их исходного кода нужно только в крайней необходимости |
|
Из "чужих" истользую только CT, а, что касается исходного кода, то ведь и к "родным" функциям Clipper исходников в доступном виде нет.
|
|
|
|
| модератор
|
Пост N: 262
Зарегистрирован: 25.05.05
|
|
Отправлено: 06.09.06 16:51. Заголовок: Re:
|
|
|
|
| |
Пост N: 23
Зарегистрирован: 25.07.06
|
|
Отправлено: 06.09.06 17:31. Заголовок: Re:
gfilatov пишет: "Был неправ. Вспылил" (с) А а линк спасибо
|
|
|
|