Форум » Clipper » GPF » Ответить

GPF

Dima: Дописал в проге не большую функцию , при запуске прога падает с GPF PS Если функцию убить , все работает. Размер EXE 2,525,824 байта BLX286 : 1313 : exception error 0D : general protection fault, code = 0000h [pre2] [Code byte CS] 06 14 6A 26 C4 1E 6A 36 [IP] 26 8B 00 26 8B 50 02 89 46 FC [Registers] AX=97AA BX=FFF4 CX=FFF6 DX=038F CS:IP=0327:0EC9 SI=0000 DI=0000 BP=9794 SP=9786 FL=3246 NV UP EI NT PL ZR NA PE NC [Stack value SS] 0CF4 0CF5 9796 142D 0327 97A8 038F F570 036F 0008 0007 0246 [SP] 5224 0006 0029 0000 0000 5224 0006 97B4 121A 0327 0934 038F [Stack frame SS] F570 036F 0008 0007 0246 5224 0006 0029 0000 0000 5224 0006 [BP] 97B4 121A 0327 0934 038F 97AA 038F 5224 00C7 4EBC 0200 4B08 [/pre2] В map файле 0EC9 не нахожу. Засада. Куда копать то ?

Ответов - 14

Dima: Добавил от балды левую (не рабочую функцию) на 17 кило , падать перестало.......

p519446: у меня был похожий случай. Помогло... двойной(!) вызов функции FILE('C:\1.TXT'), т.е. именно так: for i=1 to ... ... if ... file('c:\1.txt) file('c:\1.txt) // здесь без предыдущих двух вызовов всё валилось на GPF'e: somestr += .... // накопление довольно длинной строки ... loop endif ... end бред натуральный!! но как ни странно - помогло - GPF "ушло" :-))

Dima: p519446


Григорьев Владимир: Я думаю, тебе надо смотреть адрес CS:IP=0327:0EC9 , вычисленный относительно функций в MAP файле. То есть это смещение в регистре IP может находиться внутри какой-нибудь функции. Может быть и такое, что ты вызываешь функцию из билиотеки Tools, которая не приспособлена для работы в защищенном режиме.

Dima: Григорьев Владимир пишет: Может быть и такое, что ты вызываешь функцию из билиотеки Tools, которая не приспособлена для работы в защищенном режиме. я понимаю о чем ты говоришь , но это не тот случай. Читал ответ p519446 ? ;) У меня тот же случай.

p519446: Еще наткнулся случайно: связка ADS 7.0 + clipper RDD, вызов в ДЛИТЕЛЬНОМ цикле функции STOD приводил к GPF. Пришлось свою писать :-)

Dima: p519446 пишет: связка ADS 7.0 ADS у тебя под Netware ? Хочу такой ;)

petr707: При многочисленных вызовах ASCAN() происходил GPF. Лечилось заменой на переписанную функцию.. Function ascan_bl(arr,bl, nstart, nqu ) Local n:=0,m,L:=len(arr),nret:=0,nend Local lbl:= ( valtype(bl)="B") if nstart=NIL nstart=1 endif if nqu=NIL nend:=L else nend:=nstart-1+nqu endif for n=nstart to nend if lbl if eval(bl,arr[n]) nret :=n EXIT endif else if bl==arr[n] nret :=n EXIT endif endif//lbl next i return nret

p519446: > ADS у тебя под Netware ? > Хочу такой ;) Dima, разве ж я могу что-то возразить ? Напиши, плз, пустое письмо на p519446 ат яндeкc.py. OFF. А что это вчера при попытке запостить сюда мессагу я получал ошибку типа "405 forbidden", а теперь всё вижу опубликованным ?

p519446: PS. ОФФ. вот и сейчас тоже вижу: "405 not allowed", но на самом деле мой пост опубликован :-)

Dima: p519446 пишет: Напиши, плз, пустое письмо ушло

p519446: вышло :-)

Dima: p519446 пишет: вышло :-) Ответил ;)

Григорьев Владимир: Dima, я к тебе обратился в одной теме во "Флейме". Почитай и напиши мне письмо.



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