Страница 1 из 1

Маленькая, победоносная война ...

Добавлено: 08 Июль 2009, 10:39
Игорь Столяров
Привет всем !

Заранее извиняюсь за вопрос, но требуется комбинация кода Clarion однозначно вызывающая GPF.
При этом нельзя использовать окна, драйверы БД и желательно без указателей на адреса памяти.
В идеале - некоторая арифметитеская или логическая операция, которую можно использовать в
любом приложении и в любой части кода.

Поясню смысл глупого вопроса - отладка устойчивости БД при нештатных ситуациях работы приложения.
Другими словами, нужно исскуственно "валить" приложение при выполнении различных операций и смотреть
на наличие разрушений списков БД, ключей, индексов и т.д., а далее минимизировать эти потери.

По этой причине HALT & STOP - не предлагать, они освобождают используемую память (в т.ч. буферные зоны файлов БД) и корректно закрывают файлы БД.

После трех дней работы в режиме диагностики с выключением питания компьютера - удалось завалить не только приложение, но и Windows ... ;) Да и долго все это, перезагрузка, вход и т.д.

Заранее спасибо за любые идеи !

Re: Маленькая, победоносная война ...

Добавлено: 08 Июль 2009, 15:15
Tuko_G
открой приложение через сеть

и во времия работы отклучи сетевой кабель, или помения IP адреса.

результат БД рушится.

Re: Маленькая, победоносная война ...

Добавлено: 08 Июль 2009, 15:48
Yufil
Попробуй, например, так...
I &Long
Code
I=1

Re: Маленькая, победоносная война ...

Добавлено: 08 Июль 2009, 16:30
Игорь Столяров
Tuko_G писал(а):во времия работы отклучи сетевой кабель, или помения IP адреса
Ну во первых - далеко не всегда даже для TPS, во-вторых эта проблема практически не проявляется при выполнении операций под тразакциями (а БД под Btrieve вообще слабо реагирует на такие "мелкие шалости") и в последних - когда работает пакет программ с общей БД нужно обрабатывать выпадение одного приложения - это наииболее вероятное событие сбоя системы.

Re: Маленькая, победоносная война ...

Добавлено: 10 Июль 2009, 9:09
lsgsoftware
А почему не попробовать что-то типа переполнения буфера,
к примеру индекс массива вне декларированных границ