Форум » Clipper » VM Integrity Failure » Ответить

VM Integrity Failure

PRG_MAN: Добрый день! Появилась проблема после большой переделки 2-х похожих программ. Собраны одинаково на одном и том же тулзе, но проблема только в одной из них. Прога Clipper 5.2e + blinker5.1 + ADS 7 вдруг вылетает на ровном месте (проверка переменной) без перехвата ошибки. На эране "VM Integrity Failure (025F:1D06)". Или с перехватом "Нет экспортируемого метода EVAL" при записи в поле БД: Doc->aaa := m->bbb Сломал уже голову. Причём, примерно в одно и то же время вдруг перестаёт капризничать и работает. Что это, ADS? Переменные среды такие: SET CLIPPER=F:165; E:8000; DYNF:8; SWAPPATH:'C:\TEMP'; TEMPPATH:'C:\TEMP' FILES=170 OS win98,WinXP

Ответов - 20

saulius: Анализ lnk фаилов помог бы. Берегите голову

PRG_MAN: За совет про голову спасибо. В lnk всё идентично. Прибавил в SET CLIPPER=F:180 и FILES=185 - пока работает. Если в этом было дело, то странно, т.к. раньше в таких случаях говорила что-то типа "Недостаточно свободных дескрипторов".

Dima: PRG_MAN пишет: Прибавил в SET CLIPPER=F:180 Этим можно и не пользоваться. Достаточно прописать что то типа files=200 в config.nt или config.sys в зависимости от OS PRG_MAN пишет: E:8000; DYNF:8 Тож снеси


suv2: vm integrity проявляется только при реальном режиме при использовании EMM в bli exe extended такой ошибки нет

suv2: vm integrity проявляется только при реальном режиме при использовании EMM в bli exe extended такой ошибки нет

PRG_MAN: С реальным режимом давно расстался, не в нём след-но причина. Вылеты периодически возобновляются. Поменял в RMAKE порядок перечисления после .obj.exe: Опять работает, но на долго ли. Мистика какя-то:( Сделал BLINKER EXECUTABLE CLIPPER //F:245 //E:8000 //DYNF:8 //SWAPPATH 'C:\' //TEMPPATH 'C:\' в config FILES=250, но похоже ему/ей это по барабану. Повторюсь: другая прога работает стабильно, с точно такими же настройками. Что-то тут в линковке не то. В lnk порядок компановки важен - это известно, а в rmake должен с ним совпадать?

suv2: ну ты чо, мне не веришь? :-)

PRG_MAN: Коллеги! Поделитесь настройками BLinkera, у кого как сделано. Вот мои: Blinker executable Extended Blinker executable compress 1 Blinker executable nodelete BLINKER CACHE XMS 100%,0 BLINKER CACHE EMS 100%,0 stack 16384 BLINKER PROCEDURE DEPTH 100 BLINKER MEMORY PACK 20 BLINKER OVERLAY OPSIZE 64 BLINKER EXECUTABLE IPX 128 Blinker incremental off BLINKER ENVIRONMENT OVERRIDE BLINKER EXECUTABLE CLIPPER //F:245 //E:8000 //DYNF:8 //SWAPPATH 'C:\' //TEMPPATH 'C:\' Красным выделил то, что подобрал опытным путём, наиболее критичные, изменение кот-х приводит к вышеозначенной ошибке. Вылетает реже, но хотелось бы избавиться полностью.

petr: BLINKER INCREMENTAL OFF BLINKER EXECUTABLE CLIPPER //F:140 //TEMPPATH:'C:\TMP' BLINKER EXECUTABLE COMPRESS 1 BLINKER EXECUTABLE extended 8192 BLINKER EXECUTABLE ALIGNMENT 128 PACKDATA NOBELL BLINKER PROCEDURE DEPTH 120 BLINKER HOST MESSAGE ON BLINKER LOWMEM RESERVE 64 BLINKER CACHE XMS 100%,0 BLINKER CACHE EMS 100%,0

Pager: PRG_MAN Видать у тебя совсем большой проект! мне хватет всего лишь следущего (уже не помню даже как к такому пришел): blinker executable nodelete blinker memory clear 0 blinker memory pack 10 readonly blinker executable extended blinker incremental off blinker environment override blinker executable clipper F:95 блинкер правда 6.0, но дело скорее всего не в версии. Про порядок в lnk на сколько я помню важна последовательность библиотек : file мои... далее file CtUsP file msgrus.obj file ntxrus.obj file ErrorSys.obj lib DbfAxs # для включения возможности DBFNTXAX lib AxsBComm # для включения возможности DBFNTXAX lib CtP lib мои lib blxclp52

PRG_MAN: Спасибо, пробую... А какой последний blinker сейчас? У меня 5.10. Скинте пож. свежак на M_A_N@inbox.lv

petr:

PRG_MAN: Спасибо за отзывчивость:) скомпановал с 7-м, правда пока не помогло, но отриц-й результат тоже результат. На импортном сайте бал такой же точно вопрос, там посоветовали "Check your code". Только уже не знаю, что чекать ещё. Играю с настройками blinkera, но чую надо чего-то менять в исходниках. Может поменьше static переменных...Короче сообщу попозже о результатах.

suv2: Blinker executable nodelete это жжж неспроста линковаться должно без ошибок А ты просишь блинкер не удалять криво слинкованный exe-шник, в котором и неопределенные ссылки, и дупы и еще много всякой кривизны. А потом его запускаешь и жалуешься

PRG_MAN: он не криво слинкован. Просто есть пара ссылок из общего модуля на процедуры, которые никогда не используются в этой версии. Вот на счёт переменных - это надо конечно проверять

PRG_MAN: увеличил BLINKER PROCEDURE DEPTH 120 (было 100). Вылетает реже. Ещё любопытно, что из FARa теперь вылетает чаще, чем если запускать ярлыком

Dima: PRG_MAN Keysec не используешь ? http://clipper.borda.ru/?1-0-0-00000308-000-0-0-1157553074

PRG_MAN: Dima пишет: Keysec не используешь ? Уже давно нет. Есть KbdStat(), как она, подозрительная? Хотя не думаю - ведь другие проги без проблем. Вот на счёт PUBLICов надо бы навести ревизию. А вообще-то в новой версии много новых объектов, подправил кое-какие небрежности. Пока не ставил в бой. Надо пообкатывать.

PRG_MAN: Ну вот, могу уже поделиться радостью. 5-й день всё ok. Проблема исчезла после того, как убрал public'и по ссылке (@). Век живи- век учись. Благодарен всем откликнувшимся за blinker, советы и ссылку. Вопрос исчерпан. Успехов!

suv2: не факт передача public по ссылке - совершенно легальная операция и она не должна приводить к таким ошибкам. Ошибка - сигнал о том, что скорее всего в программе есть сторонний модуль, написанный небрежно и который в конце-концов приводит к фатальному сбою. Ну а то, что она изчезла - ничего удивительного. Я много раз видел, как неработающие из-за плохого модуля программы четко валились в одном месте и начинали работать после простой перестановки строк в исходном тексте



полная версия страницы