RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : промах мимо стека ???


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Valery Sedletski
To : zuko
Subj : промах мимо стека ???

>>
>> > ss:esp = 00e8:0000e002 ssacc = 0097 sslim =
>> 0000dfff
>>
>> судя по всему тpап 8 именно изза кончины стека :)
>>

> dfff - это мало?


Более того:

sslim=0000dfff - Это имхо макс. размер стека (stack
limit). Стек у интеловских процессоров, как известно, растет
в сторону меньших адресов. То есть, (имхо) обычное зна-
чение esp должно быть меньше dfff. Оно же (0000e002) на
несколько единиц больше (ниже дна стека). Объясните pls
чайнику, как такое могло случиться. :-)

То есть, похоже, это не "кончина" стека, а просто промах
мимо стека?

Кстати, у меня снова трапнулось (см. ниже) и со стеком
та же ерунда.

> надо доставать .sym-ы для твоего ядpа, записывать
> тpапдумп и смотpеть пpи помощи pmdf в где точно
> оно упало. скоpее всего это либо в ядpе, либо в
> тцп стеке. хотя бывают и дpугие 32-бит дpайвеpа..

*.sym как оказалось, на месте, trap screen такой (с
символами):

#
TRAP SCREEN INFORMATION
OS/2 Kernel Revision 14.065f_W4 Exception in module:
TRAP 0008 ERRCD=0000 ERACC=**** ERLIM=********
EAX=ffed78d0 EBX=f9b5df01 ECX=00000000 EDX=000001f4
ESI=faa90160 EDI=f5c01fec EBP=00005e64 FLG=00213246
CS:EIP=0168:fff1dfb9 CSACC=c09b CSLIM=ffffffff
SS:ESP=00e8:0000e002 SSACC=0097 SSLIM=0000dfff
DS=0160 DSACC=c093 DSLIM=ffffffff CR0=8001001b
ES=0160 ESACC=c093 ESLIM=ffffffff CR2=f9b5df31
FS=0000 FSACC=**** FSLIM=********
GS=0000 GSACC=**** GSLIM=********
%D1f1dfb4 OS2KRNL trap0e + 5

Как я понял, функция trap0e вызывается, (имхо)
если где-нибудь произошел trap 0e:

u %D1f1dfb4 l 00ff

#
-------------поскипано-------------------------------
OS2KRNL trap0e:
0168:fff1dfb4 e900000000 jmp fff1dfb9
0168:fff1dfb9 6a0e push +0e
0168:fff1dfbb eb1f jmp fff1dfdc
0168:fff1dfbd 90 nop
0168:fff1dfbe 90 nop
0168:fff1dfbf 90 nop
OS2KRNL trap0f:
-------------поскипано-------------------------------

-- Для каждого кода своя процедура. То есть, похоже
как раз тут и происходит IPE, а где до этого трапнулось --
как найти? Помогите pls.

После jmp fff1dfdc:

-------------поскипано-------------------------------
OS2KRNL TRAPCommonFaultEntry:
0168:fff1dfdc 6650 push ax
0168:fff1dfde 668cd0 mov ax,ss
0168:fff1dfe1 663d6001 cmp ax,0160
0168:fff1dfe5 7418 jz fff1dfff
0168:fff1dfe7 663d2015 cmp ax,1520
0168:fff1dfeb 7412 jz fff1dfff
0168:fff1dfed 663d5015 cmp ax,1550
0168:fff1dff1 740c jz fff1dfff
0168:fff1dff3 663d5815 cmp ax,1558
0168:fff1dff7 7406 jz fff1dfff
0168:fff1dff9 81e4ffff0000 and esp,0000ffff
0168:fff1dfff 6658 pop ax
0168:fff1e001 e900000000 jmp fff1e006
0168:fff1e006 f644241202 test byte ptr [esp+12],02
0168:fff1e00b 0f8532010000 jnz fff1e143
0168:fff1e011 f644240c03 test byte ptr [esp+0c],03
0168:fff1e016 0f8400020000 jz fff1e21c
0168:fff1e01c 36803dd8ff000001 cmp byte ptr ss:[0000ffd8],01
0168:fff1e024 0f844d010000 jz fff1e177
-------------поскипано-------------------------------

Короче правда похоже что косяк со стеком -- трапается на
команде push +0e

Попробую дальше раскрутить :-)
Просветите насчет стека, pls, мож я в чем не прав ;)


Sun 12 Jan 2003 14:01 Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)




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.