Еще раз о перекомпиляции.Сервер 3.04



Posted by Бутченко Игорь on July 13, 1999 at 05:44:53:

После редактирования исходных текстов форм при первой попытке выполнить W FORM выдается сообщение об ошибке (причем позиция ошибки указана либо как (0,0), либо как (-1, 255)). При повторной посылке директивы
W FORM сервер аварийно завершает работу ("Попытка чтения из нечитаемой памяти"). При просмотре посмертных дампов после нескольких аварий удалось установить, что причиной служит чтение байтного значения по виртуальному адресу [0x02020B320], причем несколькими командами ранее туда же производится запись, что не вызывает ошибки.
На всякий случай привожу один из дампов полностью:
State Dump for Thread Id 0xd9

eax=2020b320 ebx=00000046 ecx=00ffffff edx=00000023 esi=2020b320 edi=00000001
eip=00413719 esp=0012f54c ebp=00000113 iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000202


function:
004136fe 8a642414 mov ah,[esp+0x14] ss:0104df53=a8
00413702 31db xor ebx,ebx
00413704 84e4 test ah,ah
00413706 7402 jz 0041370a
00413708 891e mov [esi],ebx ds:2020b320=????????
0041370a 8b0424 mov eax,[esp] ss:0012f54c=2020b320
0041370d 3b0564004600 cmp eax,[00460064] ds:00460064=0ef17730
00413713 74d1 jz 004136e6
00413715 85c0 test eax,eax
00413717 74cd jz 004136e6
FAULT ->00413719 8a10 mov dl,[eax] ds:2020b320=??
0041371b 80fa70 cmp dl,0x70
0041371e 740f jz 0041372f
00413720 80fa3f cmp dl,0x3f
00413723 740a jz 0041372f
00413725 80fa4c cmp dl,0x4c
00413728 7405 jz 0041372f
0041372a 80fa45 cmp dl,0x45
0041372d 7527 jnz 00413756
0041372f 8b0424 mov eax,[esp] ss:0012f54c=2020b320
00413732 8a400f mov al,[eax+0xf] ds:21129d26=??
00413735 25ff000000 and eax,0xff

Сам сервер выдает сообщение об ошибке, в котором тот же адрес указан не как [0x02020B320], а как [0x02020B32], что я сначала расценил как сбой со стороны библиотеки защиты ключом nvkeyvdd.dll, имеющей базу [0x02000000], но при более подробном рассмотрении оказалось, что дело не в этом.
В чем может быть дело?


Пpишедшие ответы: