POV-Ray : Newsgroups : povray.beta-test : CodeMax editor crash Server Time
1 Nov 2024 13:20:12 EDT (-0400)
  CodeMax editor crash (Message 1 to 1 of 1)  
From: Vic
Subject: CodeMax editor crash
Date: 29 Apr 2002 16:13:18
Message: <3ccda95e@news.povray.org>
CodeMax editor crash bug description:

Version: PovRay for Windows RC2 (machine has been dated back to 27 of April)
Opsys: Windows 2000 Prof. SP2
Scene file to produce: Stereo.inc posted to povray.binaries.scene-files

Actions to reproduce the bug:

- Select the first occurrence of the )+" (3 characters) sequence at the end
of the second #debug line
- Press Ctrl-H (replace)
- Type )," (3 characters) as a replacement
- Press Replace button with the mouse (or press the hotkey)

This produces an access violation exception dialog in: povcmax.dll
Error message: Read of addess 00000000

This seems to be a string function called with a null pointer accidentally
in CodeMax.

Visual studio debugger not started automatically.
Is there any error handling code to catch the exception?

Let's go ahead:

- Press the Ok button in the error dialog
- Try to continue the replace operation by pressing Replace button again

A second exception dialog pops up:
POV-Ray editor error!: pvengine.exe - Application Error
The instruction at "0x014e9915" referenced memory at "0x00000000". The
memory could not be "read".
Usual OK, CANCEL. Cancel to debug.

I pressed the CANCEL and went to VC++ debugger... :-)))

Result: Microsoft Visual C++ error: POVCMAX2.DLL 0xC0000005: Access
violation

Call stack debug window has one entry:
POVCMAX2! 014e9915()

Register dump:

 EAX = 00000000 EBX = 01524938 ECX = 0012FA14
 EDX = 00130608 ESI = 00000000 EDI = 00000001
 EIP = 014E9915 ESP = 0012F9D4 EBP = 00000001
 EFL = 00000246
 MM0 = B93720980012FD04 MM1 = 0000000000001372
 MM2 = B937237C00000000 MM3 = 0012FCF800000000
 MM4 = 00000021A03141F0 MM5 = 002300CC00000020
 MM6 = 0000000077E203A8 MM7 = 000000000000000C
 CS = 001B DS = 0023 ES = 0023 SS = 0023 FS = 003B
 GS = 0000 OV=0 UP=0 EI=1 PL=0 ZR=1 AC=0 PE=1 CY=0
 ST0 = -1.44089024400955013e+4588
 ST1 = +0.00000000000000000e+0000
 ST2 = +0.00000000000000000e+0000
 ST3 = +0.00000000000000000e+0000
 ST4 = +0.00000000000000000e+0000
 ST5 = +0.00000000000000000e+0000
 ST6 = +0.00000000000000000e+0000
 ST7 = -0.00000000000000000e+4698
 CTRL = 1372 STAT = 0000 TAGS = FFFF EIP = 00000000
 CS = 3938 DS = 0246 EDO = 0000001B

Next instructions:

014E9915   mov         cl,byte ptr [esi]
014E9917   test        cl,cl
014E9919   je          014E9953
014E991B   mov         edx,ecx
014E991D   xor         eax,eax
014E991F   and         edx,0FFh
014E9925   mov         dl,byte ptr [edx+150B1A8h]
014E992B   cmp         dl,cl
014E992D   sete        al
014E9930   and         ebp,eax
014E9932   xor         eax,eax
014E9934   cmp         dl,cl
014E9936   mov         ecx,dword ptr [esp+18h]
014E993A   setne       al
014E993D   and         ecx,eax
014E993F   test        ebp,ebp
014E9941   mov         dword ptr [esp+18h],ecx
...

Thanks for your help.

- Vic -


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.