Приложение Paradox (ObjectPal), вызывающее случайные нарушения общей защиты, ищет причину
У нас есть довольно большое приложение, основанное на paradox / objectpal. Поскольку мы переместили базу данных из таблиц на основе файлов (парадокс) в MS SQL 2008 Express Edition, мы сталкиваемся с множеством общих нарушений защиты (GPV), которые появляются время от времени. кажется, что эти ошибки возникают только во время выполнения парадокса, а не в редакции разработки, что делает невозможной отладку. Мы многое сделали, чтобы минимизировать эти GPV, и, похоже, все становится лучше. в любом случае, здесь и сейчас все еще есть раздражающие GPV, которые приводят к краху всего приложения. Итак, я ищу отладчик / регистратор для Windows, чтобы увидеть, какие операции / методы вызывают эти ошибки. как журнал событий Windows, но с более подробной информацией, которая может дать подсказку, что и где искать. я не уверен, что такой инструмент вообще существует...
2 ответа
Я могу думать о двух вещах, которые вы можете попробовать.
(1) Посоветуйтесь с этими парнями
http://pnews.thedbcommunity.com/cgi-bin/dnewsweb.exe
на предмет GPV (GPF) со временем выполнения, но не с платформой разработки. Я уверен, что ваш вопрос уже возник там.
Попробуйте сначала поискать в новостных группах, но если это не поможет, ваш вопрос, вероятно, относится к "pnews.paradox-development".
(2) Добавьте код регистрации в само приложение. Добавьте объект библиотеки для инкапсуляции файла журнала событий с помощью специального метода для сообщения о событии.
Начните с вызова событий open() и close() каждого объекта дизайна (формы, сценария, отчета и т. Д.). Затем добавьте вызов метода action() любых подозрительных объектов для обнаружения и регистрации определенных действий.
Я знаю, что это утомительно, потому что вы должны добавить библиотеку в методы Var() и Open() каждого объекта дизайна в приложении. Но если все сделано правильно, работа вашего приложения становится удивительно прозрачной.
По моему опыту после многих лет использования Paradox, GPV могут стать проблемой фильтрации. Если фильтр установлен в форме в интерактивном режиме, то при попытке открыть форму с помощью setGenFilter может возникнуть конфликт, вызывающий GPV. Список ошибок Paradox Бертиля Исберга, составленный много лет назад, представляет собой длинный список ошибок Paradox, их исправлений и обходных путей.