Re: Fwd: [PHP-DEV] PHP 4.0 Bug #5044: ps4ts.dll crashes whenapache tries to access page (apache 1.3.12)
| From: | Shane Caraveo | Date: | Thu, 15 Jun 2000 14:14:20 +0000 |
| Subject: | Re: Fwd: [PHP-DEV] PHP 4.0 Bug #5044: ps4ts.dll crashes whenapache tries to access page (apache 1.3.12) | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-21423@lists.php.net to get a copy of this message | ||
> Shane,
>
> Some Windows Apache users keep on getting weird crashes. I remember you
> showed us away to understand the cryptic crash a while ago (finding where
> it really crashes).
> Can you please give us that lesson again :)
>
> Thanks,
>
> Andi
Wish I still had that email. "use it or lose it". I figured out last
year the meanings of these lame 95/98 crash outputs, but haven't had a
need for it since, and cannot remember the specifics.
Anyway, you have the address of the fault, 100765d6. What you do is set
apache.exe as the debug executable for php in visual studio. Apache
does not need to be a debug compile, and probably better if it isnt.
You need the same compile this person is using also. You can run a
release version through the debuger (if you set the project to produce
the program database), you just wont be able to see variable values.
Then use a web browser to load a php page and produce the crash. The
debugger will take you right to the address of the crash, and show you
the associated source. The only unfortunate part of this, if the crash
is in a system dll, or in apache, it wont tell you much. But from the
looks of it, this crash is actually in php4ts.dll. If you cannot
produce the crash, you can still go to the address of the fault to find
out where in the source this occurs. Just open the dissasembly window,
page up or down to the address, the right click, and choose view source.
Again, this all depends on setting the project to produce the program
database. Go into the project settings, to the c/c++ tab, under
general, set Debug Info to Program Database. Do this under the release
compile. It does not change the executable or dll at all, it simply
produces the pdb file so the debugger can match source to machine code.
> >PHP caused an invalid page fault in
> >module PHP4TS.DLL at 015f:100765d6.
> >Registers:
> >EAX=48544150 CS=015f EIP=100765d6 EFLGS=00010202
> >EBX=0000000e SS=0167 ESP=0063fcc8 EBP=00784940
> >ECX=00760c10 DS=0167 ESI=00760570 FS=61a7
> >EDX=4152545f ES=0167 EDI=00654240 GS=0000
> >Bytes at CS:EIP:
> >89 02 8b 06 85 c0 74 06 8b 4e 04 89 48 04 56 ff
> >Stack dump:
> >00784959 007603e0 100033c9 00760580 00000001 007603e0 0063fdc4 00760c20
> >007603e0 007605ba 00762060 0000000f 004030dc 0000000f 000004e4 0063fdc4