Hi,
calling RaiseException(EXCEPTION_ACCESS_VIOLATION, EXCEPTION_NONCONTINUABLE, 0, NULL) from user mode does crash reactos.
- Hartmut
(lib\rtl\exception.c:29) RtlRaiseException(Status 0064fea8) (lib\rtl\exception.c:36) ExceptionAddress 7c801fcc (ntoskrnl\ke\exception.c:94) KiRaiseException (ntoskrnl\ke\i386\exp.c:933) KiDispatchException() called (lib\rtl\exception.c:75) RtlRaiseStatus(Status 0x80000002) (lib\rtl\i386\exception.c:59) RtlDispatchException(): 87032998, 870326c8 (lib\rtl\i386\exception.c:64) RegistrationFrame is 0x87032D30 (lib\rtl\i386\exception.c:90) Invalid exception frame (ntoskrnl\ke\exception.c:94) KiRaiseException (ntoskrnl\ke\i386\exp.c:933) KiDispatchException() called KeBugCheckWithTf at ntoskrnl\ke\i386\exp.c:993 A problem has been detected and ReactOS has been shut down to prevent damage to your computer.
The problem seems to be caused by the following file: ntoskrnl.exe
Technical information:
*** STOP: 0x0000001E (0x80000002,0x80072fba,0x00000001,0x870329f0)
*** ntoskrnl.exe - Address 0x80072fba base at 0x80000000, DateStamp 0x0
Divide Error Exception: 0(0) Processor: 0 CS:EIP 8:80072fba <ntoskrnl.exe:72fba (ntoskrnl/mm/virtual.c:1002 (ProbeForRead))> cr2 0 cr3 178f9000 Proc: 81ad12d0 Pid: 15c <t.EXE> Thrd: 81a691d8 Tid: 160 DS 10 ES 10 FS 30 GS 0 EAX: 870326c8 EBX: 81a691d8 ECX: 00000000 EDX: 000002f8 EBP: 81a691d8 ESI: 0064fbc4 ESP: 87032644 EDI: 87032d74 EFLAGS: 00000282 kESP 87032644 kernel stack base 87030000 Frames: <0>
Hartmut Birr wrote:
Hi,
calling RaiseException(EXCEPTION_ACCESS_VIOLATION, EXCEPTION_NONCONTINUABLE, 0, NULL) from user mode does crash reactos.
- Hartmut
(lib\rtl\exception.c:29) RtlRaiseException(Status 0064fea8) (lib\rtl\exception.c:36) ExceptionAddress 7c801fcc (ntoskrnl\ke\exception.c:94) KiRaiseException (ntoskrnl\ke\i386\exp.c:933) KiDispatchException() called (lib\rtl\exception.c:75) RtlRaiseStatus(Status 0x80000002)
^^^ It seems that the user-mode context or exception frame is not properly aligned (or the Probe check is broken)... I will test and see which of the probe fails.
(lib\rtl\i386\exception.c:59) RtlDispatchException(): 87032998, 870326c8 (lib\rtl\i386\exception.c:64) RegistrationFrame is 0x87032D30 (lib\rtl\i386\exception.c:90) Invalid exception frame
^^^ RtlpGetStackLimits should not be shared, because the limits have to be taken from the thread's teb, not KPCR. This is my fault, I'll fix it right now.
Best regards, Alex Ionescu
Hi,
there exist more problems. Some functions (for instance KiDispatchException) leave a TRY block with a return statement. Quoting http://www.reactos.com/wiki/index.php/PSEH: /"Absolutely do not use *return* inside a try block/: this will lead to crashes, or worse undetectable corruption, because some per-thread system state will still refer to local variables of the function you've returned from."
- Hartmut
Alex Ionescu wrote:
Hartmut Birr wrote:
Hi,
calling RaiseException(EXCEPTION_ACCESS_VIOLATION, EXCEPTION_NONCONTINUABLE, 0, NULL) from user mode does crash reactos.
- Hartmut
(lib\rtl\exception.c:29) RtlRaiseException(Status 0064fea8) (lib\rtl\exception.c:36) ExceptionAddress 7c801fcc (ntoskrnl\ke\exception.c:94) KiRaiseException (ntoskrnl\ke\i386\exp.c:933) KiDispatchException() called (lib\rtl\exception.c:75) RtlRaiseStatus(Status 0x80000002)
^^^ It seems that the user-mode context or exception frame is not properly aligned (or the Probe check is broken)... I will test and see which of the probe fails.
(lib\rtl\i386\exception.c:59) RtlDispatchException(): 87032998, 870326c8 (lib\rtl\i386\exception.c:64) RegistrationFrame is 0x87032D30 (lib\rtl\i386\exception.c:90) Invalid exception frame
^^^ RtlpGetStackLimits should not be shared, because the limits have to be taken from the thread's teb, not KPCR. This is my fault, I'll fix it right now.
Best regards, Alex Ionescu _______________________________________________ Ros-dev mailing list Ros-dev@reactos.com http://reactos.com:8080/mailman/listinfo/ros-dev