RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Трап E в стеке при применении netio на виндовую машину (+)


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : valerius
To : ErOs2
Subj : Трап E в стеке при применении netio на виндовую машину (+)

> >
> > No Symbols Found
> >
> > То есть стоит некий фикс кажется pj29154.zip причем с sym'ами, но
> > пишет почему-то "No Symbols Found"
>
> У меня pmdf.exe хватает символы, я положил их в тот же каталог что и .sym-ы к ядру.
>
> Вот пример.
>
> IBM OS/2 Dump Formatter for a retail or an hstrict UNI kernel.
> Formatter is --> Internal revision 14.096_UNI
> Dump file is --> Internal revision 14.096_UNI (system dump)
>
> Symbol (d:\more\dump\warp45_u\os2krnlr.sym) linked
> Symbol (d:\more\dump\warp45_u\sockets.sym) linked
>
>
>
> TRAP SCREEN INFORMATION
> OS/2 Kernel Revision 14.096_UNI
> Exception in module: SOCKETS
> TRAP 000e ERRCD=0000 ERACC=**** ERLIM=********
> EAX=f4cb3f1c EBX=f4cb3f00 ECX=3fff24c8 EDX=fffffff6
> ESI=f4cffffe EDI=f4ceabf0 EBP=00005c6c FLG=00012203
> CS:EIP=0168:f85b2671 CSACC=c09b CSLIM=ffffffff
> SS:ESP=0030:00005c24 SSACC=1097 SSLIM=00004ddf
> DS=0160 DSACC=c093 DSLIM=ffffffff CR0=8001001b
> ES=0160 ESACC=c093 ESLIM=ffffffff CR2=f4d00000
> FS=03c0 FSACC=0093 FSLIM=00000023
> GS=0000 GSACC=**** GSLIM=********
> %F85b2664 SOCKETSK memcpy + d
>
>
> Попробуй положить. Только обрати внимание, хотя трап в socketsk, оно всё равно ищет sockets.sym.
>
> >
> > Похоже как всегда кончился стек.
>
> Если кончился стек - будет трап 8.
>
Кончился стек -- trap000c -- stack fault

но иногда до этого не доходит, как в последнем случае. У тебя тоже имхо кончился стек.

Вот что у меня получилось:

IBM OS/2 Dump Formatter for a retail or an hstrict UNI kernel.
Formatter is --> Internal revision 14.085_UNI
Dump file is --> Internal revision 14.085_W4 (system dump)

Symbol (f:\os2\pdpsi\pmdf\w41026\os2krnlr.sym) linked

Current slot number: 010a

Slot Pid Ppid Csid Ord Sta Pri pTSD pPTDA pTCB Disp SG Name
*010a# 0074 0073 0074 0001 run 0300 f9fc0000 fefd3940 fef24bc0 0b88 1e NETIO

eax=00000045 ebx=00000000 ecx=00000002 edx=00160400 esi=00000000 edi=ffc5ffe0
eip=1c029cec esp=001600e8 ebp=00160444 iopl=2 -- -- -- nv up ei pl zr na pe nc
cs=005b ss=0053 ds=0053 es=0053 fs=150b gs=0000 cr2=00000000 cr3=00200000
005b:1c029cec 55 push ebp
#
Loading version data ... please wait
Loading structure info for OS/2 Warp MCP1 W4 14.085 ... please wait.
....Structure definition file (w41026\kernel.sdf) loaded.
Done.

# wa f:\mptn\protocol\socketsk.sym

-- Нет сообщения об успешной загрузке файла символов.

#
TRAP SCREEN INFORMATION
OS/2 Kernel Revision 14.085_W4 Exception in module: SOCKETS
TRAP 000e ERRCD=0000 ERACC=**** ERLIM=********
EAX=00000000 EBX=ed768a14 ECX=ed768a14 EDX=00000000
ESI=003a4020 EDI=ed768a14 EBP=00005d44 FLG=00212246
CS:EIP=0168:f2f7b666 CSACC=c09b CSLIM=ffffffff
SS:ESP=0030:00005cf4 SSACC=1097 SSLIM=00004f5f
DS=0160 DSACC=c093 DSLIM=ffffffff CR0=8001001b
ES=0160 ESACC=c093 ESLIM=ffffffff CR2=00000018
FS=0000 FSACC=**** FSLIM=********
GS=0000 GSACC=**** GSLIM=********

No Symbols Found


# wa f:\mptn\protocol\sockets.sym
Symbol (f:\mptn\protocol\sockets.sym) linked

#
TRAP SCREEN INFORMATION
OS/2 Kernel Revision 14.085_W4 Exception in module: SOCKETS
TRAP 000e ERRCD=0000 ERACC=**** ERLIM=********
EAX=00000000 EBX=ed768a14 ECX=ed768a14 EDX=00000000
ESI=003a4020 EDI=ed768a14 EBP=00005d44 FLG=00212246
CS:EIP=0168:f2f7b666 CSACC=c09b CSLIM=ffffffff
SS:ESP=0030:00005cf4 SSACC=1097 SSLIM=00004f5f
DS=0160 DSACC=c093 DSLIM=ffffffff CR0=8001001b
ES=0160 ESACC=c093 ESLIM=ffffffff CR2=00000018
FS=0000 FSACC=**** FSLIM=********
GS=0000 GSACC=**** GSLIM=********
%F2f7b170 SOCKETS soreceive + 4f6


И все это при том, что из сonfig.sys грузится именно socketsk.sys


# dg 30
0030 Data Bas=ffc370a0 Lim=00004f5f DPL=0 P RW ED A UV
-- Expand-down стек, ss = 5cf4 > sslim = 4f5f -- все OK (бит granularity сброшен)
Так что в данном случае как раз переполнение стека.


Теперь легкий финт ушами ;) Переименовываем:
ren sockets.sym sockets_.sym
ren socketsk.sym sockets.sym
И тогда думп-форматтер загрузит правильный .sym-файл!

# wa f:\mptn\protocol\sockets.sym
Symbol (f:\mptn\protocol\sockets.sym) linked

#
TRAP SCREEN INFORMATION
OS/2 Kernel Revision 14.085_W4 Exception in module: SOCKETS
TRAP 000e ERRCD=0000 ERACC=**** ERLIM=********
EAX=00000000 EBX=ed768a14 ECX=ed768a14 EDX=00000000
ESI=003a4020 EDI=ed768a14 EBP=00005d44 FLG=00212246
CS:EIP=0168:f2f7b666 CSACC=c09b CSLIM=ffffffff
SS:ESP=0030:00005cf4 SSACC=1097 SSLIM=00004f5f
DS=0160 DSACC=c093 DSLIM=ffffffff CR0=8001001b
ES=0160 ESACC=c093 ESLIM=ffffffff CR2=00000018
FS=0000 FSACC=**** FSLIM=********
GS=0000 GSACC=**** GSLIM=********
%F2f7b5d7 SOCKETSK KEEsosend + 8f

# u KEEsosend+8f
%F2f7b666 8b5218 mov edx,dword ptr [edx+18]
%F2f7b669 8955f8 mov dword ptr [ebp-08],edx
%F2f7b66c f6818c00000001 test byte ptr [ecx+0000008c],01
%F2f7b673 741b jz %F2f7b690
%F2f7b675 f6451501 test byte ptr [ebp+15],01
%F2f7b679 0f94c2 sete dl
%F2f7b67c 80fa01 cmp dl,01
%F2f7b67f 7519 jnz %F2f7b69a
%F2f7b681 83c16c add ecx,+6c ;'l'
%F2f7b684 51 push ecx
%F2f7b685 e86c320000 call %F2f7e8f6
%F2f7b68a 83c404 add esp,+04
#
Тут видно, что (edx == 0) в первой инструкции происходит попытка прочитать
неправильный адрес [18] (Ведь область памяти от 0 до 64К в OS/2 недопустима
(для прикладной проги, для драйвера имхо тоже). Получается page fault (по-
пытка загрузить страницу, в которой адрес [18]).

PS
Так я понял ситуацию, не судите строго, это мое имхо ;)

PPS
Главный вопрос остается: как пофиксить эту проблему?
-- Какие фиксы можно поставить?

Tue 09 Dec 2003 09:02 Mozilla/4.7 [ru] (Win98; I)




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.