From: Yaroslav K. <kav...@je...> - 2010-06-28 07:02:52
|
Clisp with debug and with mt built and tested is ok (only one mt test failed). Without debug built is ok, but test failed: ./lisp.exe -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M lispinit.mem -x '(progn (dolist (s (quote (*terminal-io* *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) (format t "~S = ~S~%" s (symbol-value s))) (values))' 2>&1 > fresh-line.out *** - handle_fault error2 ! address = 0x1f0 not in [0x19fe0000,0x1a1311d0) ! SIGSEGV cannot be cured. Fault address = 0x1f0. GC count: 0 Space collected by GC: 0 0 Run time: 0 468750 Real time: 0 0 GC time: 0 0 Permanently allocated: 100048 bytes. Currently in use: 1859168 bytes. Free space: 522696 bytes. make: *** [check-fresh-line] Error 5 What to do about it? -- WBR, Yaroslav Kavenchuk |
From: Vladimir T. <vtz...@gm...> - 2010-06-28 07:58:59
|
On 6/28/10, Yaroslav Kavenchuk <kav...@je...> wrote: > Clisp with debug and with mt built and tested is ok (only one mt test > failed). Yes, there is no real thread-interrupt on win32. > Without debug built is ok, but test failed: > > ./lisp.exe -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M > lispinit.mem -x '(progn (dolist (s (quote (*terminal-io* > *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) > (format t "~S = ~S~%" s (symbol-value s))) (values))' 2>&1 > fresh-line.out > > *** - handle_fault error2 ! address = 0x1f0 not in [0x19fe0000,0x1a1311d0) ! > SIGSEGV cannot be cured. Fault address = 0x1f0. > GC count: 0 > Space collected by GC: 0 0 > Run time: 0 468750 > Real time: 0 0 > GC time: 0 0 > Permanently allocated: 100048 bytes. > Currently in use: 1859168 bytes. > Free space: 522696 bytes. > make: *** [check-fresh-line] Error 5 > > What to do about it? Can you set a breakpoint in spvw_sigsegv.d - sigsegv_handler_failed() and paste the stack trace (sorry - I do not have win32 machine right now to test it myself). |
From: Yaroslav K. <kav...@je...> - 2010-06-28 09:34:32
|
Vladimir Tzankov wrote: > Can you set a breakpoint in spvw_sigsegv.d - sigsegv_handler_failed() > and paste the stack trace (sorry - I do not have win32 machine right > now to test it myself). how do it without debug information? Program received signal SIGSEGV, Segmentation fault. 0x004546d1 in ?? () (gdb) bt #0 0x004546d1 in ?? () #1 0x0040c320 in ?? () #2 0x0040c68f in ?? () #3 0x00412625 in ?? () #4 0x00416675 in ?? () #5 0x004010b6 in ?? () #6 0x00401148 in ?? () #7 0x7c817077 in RegisterWaitForInputIdle () from C:\WINDOWS\system32\kernel32.dll #8 0x00000000 in ?? () (gdb) -- WBR, Yaroslav Kavenchuk |
From: Sam S. <sd...@gn...> - 2010-06-29 15:31:58
|
Yaroslav Kavenchuk wrote: > Vladimir Tzankov wrote: >> Can you set a breakpoint in spvw_sigsegv.d - sigsegv_handler_failed() >> and paste the stack trace (sorry - I do not have win32 machine right >> now to test it myself). > > how do it without debug information? edit Makefile, replace "-O" with "-g", "make clean", "make" > Program received signal SIGSEGV, Segmentation fault. > 0x004546d1 in ?? () > (gdb) bt > #0 0x004546d1 in ?? () > #1 0x0040c320 in ?? () > #2 0x0040c68f in ?? () > #3 0x00412625 in ?? () > #4 0x00416675 in ?? () > #5 0x004010b6 in ?? () > #6 0x00401148 in ?? () > #7 0x7c817077 in RegisterWaitForInputIdle () > from C:\WINDOWS\system32\kernel32.dll > #8 0x00000000 in ?? () > (gdb) > |
From: Yaroslav K. <kav...@je...> - 2010-06-30 06:44:19
|
Sam Steingold wrote: > edit Makefile, replace "-O" with "-g", "make clean", "make" Thanks! out: GNU gdb (GDB) 7.0.50.20100202 ... (gdb) break sigsegv_handler_failed Note: breakpoint 18 also set at pc 0x4260ef. Breakpoint 19 at 0x4260ef: file ../src/spvw_sigsegv.d, line 64. (gdb) run Starting program: g:\gnu\home\src\clisp\clisp\build-full-mt/lisp.exe -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M lispinit.mem -x "(progn (dolist (s (quote (*terminal-io* *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) (format t \"~S = ~S~%\" s (symbol-value s))) (values))" [New Thread 1476.0x1f8] Program received signal SIGSEGV, Segmentation fault. 0x004bdbc1 in closed_buffered (stream=0x1a1301e1) at ../src/stream.d:8325 8325 BufferedStream_buffstart(stream) = 0; /* delete buffstart (unnecessary) */ (gdb) bt #0 0x004bdbc1 in closed_buffered (stream=0x1a1301e1) at ../src/stream.d:8325 #1 0x004cd170 in closed_all_files () at ../src/stream.d:16262 #2 0x0042c9f0 in loadmem_from_handle (handle=0x758, filename=0x7 <Address 0x7 out of bounds>) at ../src/spvw_memfile.d:1748 #3 0x0042cd5f in loadmem (filename=0x758 <Address 0x758 out of bounds>) at ../src/spvw_memfile.d:977 #4 0x00432cf5 in init_memory (p=0xa2e760) at ../src/spvw.d:3255 #5 0x00436d45 in main (argc=17, argv=0x3e44d8) at ../src/spvw.d:3709 -- WBR, Yaroslav Kavenchuk |
From: Vladimir T. <vtz...@gm...> - 2010-06-30 08:07:31
|
On 6/30/10, Yaroslav Kavenchuk <kav...@je...> wrote: > GNU gdb (GDB) 7.0.50.20100202 > ... > (gdb) break sigsegv_handler_failed > Note: breakpoint 18 also set at pc 0x4260ef. > Breakpoint 19 at 0x4260ef: file ../src/spvw_sigsegv.d, line 64. > (gdb) run > Starting program: g:\gnu\home\src\clisp\clisp\build-full-mt/lisp.exe -B > . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M lispinit.mem > -x "(progn (dolist (s (quote (*terminal-io* *standard-output* > *error-output* *query-io* *debug-io* *trace-output*))) (format t \"~S = > ~S~%\" s (symbol-value s))) (values))" > [New Thread 1476.0x1f8] > > Program received signal SIGSEGV, Segmentation fault. > 0x004bdbc1 in closed_buffered (stream=0x1a1301e1) at ../src/stream.d:8325 > 8325 BufferedStream_buffstart(stream) = 0; /* delete buffstart > (unnecessary) */ > (gdb) bt > #0 0x004bdbc1 in closed_buffered (stream=0x1a1301e1) at > ../src/stream.d:8325 > #1 0x004cd170 in closed_all_files () at ../src/stream.d:16262 > #2 0x0042c9f0 in loadmem_from_handle (handle=0x758, > filename=0x7 <Address 0x7 out of bounds>) at ../src/spvw_memfile.d:1748 > #3 0x0042cd5f in loadmem (filename=0x758 <Address 0x758 out of bounds>) > at ../src/spvw_memfile.d:977 > #4 0x00432cf5 in init_memory (p=0xa2e760) at ../src/spvw.d:3255 > #5 0x00436d45 in main (argc=17, argv=0x3e44d8) at ../src/spvw.d:3709 gdb intercepts SIGSEGV - the breakpoint is not hit. Disable gdb SIGSEGV handling by: handle SIGSEGV nostop noprint and re-run it. Thanks. |
From: Yaroslav K. <kav...@je...> - 2010-07-01 06:59:05
|
Vladimir Tzankov wrote: > gdb intercepts SIGSEGV - the breakpoint is not hit. > Disable gdb SIGSEGV handling by: > handle SIGSEGV nostop noprint > > and re-run it. Thanks. Reading symbols from g:\gnu\home\src\clisp\clisp\build-full-mt/lisp.exe...done. Breakpoint 1 at 0x4640d0: file ../src/eval.d, line 4856. Breakpoint 2 at 0x466b00: file ../src/eval.d, line 4017. Breakpoint 3 at 0x46186d: file ../src/eval.d, line 2952. Breakpoint 4 at 0x45a394: file ../src/eval.d, line 5745. Breakpoint 5 at 0x424780: file ../src/spvw_garcol.d, line 3061. Breakpoint 6 at 0x43816c: file ../src/foreign.d, line 272. Breakpoint 7 at 0x4337bc: file ../src/lispbibl.d, line 7399. (8 locations) Breakpoint 8 at 0x4289a8: file ../src/spvw.d, line 1039. Breakpoint 9 at 0x42bb5b: file ../src/lispbibl.d, line 7399. Breakpoint 10 at 0x42ba8f: file ../src/lispbibl.d, line 7399. Breakpoint 11 at 0x45020a: file ../src/error.d, line 378. Breakpoint 12 at 0x4501ba: file ../src/error.d, line 354. Breakpoint 13 at 0x453ff4: file ../src/errwin32.d, line 3885. Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal] Breakpoint 14 at 0x454517: file ../src/error.d, line 456. Breakpoint 15 at 0x4544b7: file ../src/errwin32.d, line 4141. Breakpoint 16 at 0x50b285: file ../src/debug.d, line 503. Breakpoint 17 at 0x44fb2e: file ../src/error.d, line 201. Num Type Disp Enb Address What 1 breakpoint keep n 0x004640d0 in funcall at ../src/eval.d:4856 xout fun 2 breakpoint keep n 0x00466b00 in apply at ../src/eval.d:4017 xout fun 3 breakpoint keep n 0x0046186d in eval at ../src/eval.d:2952 xout form 4 breakpoint keep n 0x0045a394 in interpret_bytecode_ at ../src/eval.d:5745 xout closure 5 breakpoint keep n 0x00424780 in gar_col at ../src/spvw_garcol.d:3061 6 breakpoint keep y 0x0043816c in register_foreign_inttype at ../src/foreign.d:272 silent printf "%30s: %d %d\n", name_asciz, size, signed_p continue 7 breakpoint keep y <MULTIPLE> silent call check_funtab() continue 7.1 y 0x004337bc in main_actions at ../src/lispbibl.d:7399 7.2 y 0x0043382e in main_actions at ../src/lispbibl.d:7399 7.3 y 0x00433876 in main_actions at ../src/lispbibl.d:7399 7.4 y 0x004338e2 in main_actions at ../src/lispbibl.d:7399 7.5 y 0x00433f89 in main_actions at ../src/lispbibl.d:7399 7.6 y 0x004346f4 in main_actions at ../src/lispbibl.d:7399 7.7 y 0x0043556f in main_actions at ../src/lispbibl.d:7399 7.8 y 0x00435602 in main_actions at ../src/lispbibl.d:7399 8 breakpoint keep y 0x004289a8 in error_notreached at ../src/spvw.d:1039 9 breakpoint keep y 0x0042bb5b in SP_ueber at ../src/lispbibl.d:7399 10 breakpoint keep y 0x0042ba8f in STACK_ueber at ../src/lispbibl.d:7399 11 breakpoint keep y 0x0045020a in error at ../src/error.d:378 12 breakpoint keep y 0x004501ba in prepare_error at ../src/error.d:354 13 breakpoint keep y 0x00453ff4 in OS_error at ../src/errwin32.d:3885 14 breakpoint keep y 0x00454517 in OS_filestream_error at ../src/error.d:456 15 breakpoint keep y 0x004544b7 in errno_out_low at ../src/errwin32.d:4141 16 breakpoint keep y 0x0050b285 in break_driver at ../src/debug.d:503 17 breakpoint keep y 0x0044fb2e in signal_and_debug at ../src/error.d:201 Breakpoint 18 at 0x4260ef: file ../src/spvw_sigsegv.d, line 64. (gdb) break sigsegv_handler_failed Note: breakpoint 18 also set at pc 0x4260ef. Breakpoint 19 at 0x4260ef: file ../src/spvw_sigsegv.d, line 64. (gdb) handle SIGSEGV nostop noprint Signal Stop Print Pass to program Description SIGSEGV No No Yes Segmentation fault (gdb) run Starting program: g:\gnu\home\src\clisp\clisp\build-full-mt/lisp.exe -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M lispinit.mem -x "(progn (dolist (s (quote (*terminal-io* *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) (format t \"~S = ~S~%\" s (symbol-value s))) (values))" [New Thread 2328.0x90c] Program exited with code 030000000005. (gdb) -- WBR, Yaroslav Kavenchuk |
From: Sam S. <sd...@gn...> - 2010-06-30 13:47:47
|
Yaroslav Kavenchuk wrote: > Program received signal SIGSEGV, Segmentation fault. > 0x004bdbc1 in closed_buffered (stream=0x1a1301e1) at ../src/stream.d:8325 > 8325 BufferedStream_buffstart(stream) = 0; /* delete buffstart > (unnecessary) */ > (gdb) bt > #0 0x004bdbc1 in closed_buffered (stream=0x1a1301e1) at > ../src/stream.d:8325 http://clisp.cons.org/impnotes/faq.html#faq-debug-gengc |
From: Vladimir T. <vtz...@gm...> - 2010-07-07 21:48:35
|
On 6/28/10, Yaroslav Kavenchuk <kav...@je...> wrote: > Clisp with debug and with mt built and tested is ok (only one mt test > failed). Without debug built is ok, but test failed: > > ./lisp.exe -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M > lispinit.mem -x '(progn (dolist (s (quote (*terminal-io* > *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) > (format t "~S = ~S~%" s (symbol-value s))) (values))' 2>&1 > fresh-line.out > > *** - handle_fault error2 ! address = 0x1f0 not in [0x19fe0000,0x1a1311d0) ! > SIGSEGV cannot be cured. Fault address = 0x1f0. Now that I have have working mingw build - I can reproduce the problem. My tests show that it only happens with -O2 and is not related to generational GC - something is going wrong in stream.d:handle_to_stream() when the output is redirected (STACK_5 = handle_pathname(fd); is the last line being executed - and handle_pathname(fd) returns!). Can you edit your Makefile and replace -O2 with -O0 and try again (want to confirm my observation)? Also what gcc version are you using? Thanks. Vladimir |
From: Yaroslav K. <kav...@je...> - 2010-07-08 08:04:15
|
Vladimir Tzankov wrote: > Can you edit your Makefile and replace -O2 with -O0 and try again > (want to confirm my observation)? $ CC="gcc -DUSE_CUSTOM_TLS=3" ./configure CFLAGS=-O0 \ --with-mingw \ ... --with-threads=WIN32_THREADS \ --cbc build-full-mt ... generate the same error: ... ./lisp.exe -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M lispinit.mem -x '(progn (dolist (s (quote (*terminal-io* *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) (format t "~S = ~S~%" s (symbol-value s))) (values))' 2>&1 > fresh-line.out *** - handle_fault error2 ! address = 0x1f0 not in [0x19fe0000,0x1a131a8c) ! SIGSEGV cannot be cured. Fault address = 0x1f0. GC count: 0 Space collected by GC: 0 0 Run time: 0 468750 Real time: 0 0 GC time: 0 0 Permanently allocated: 100048 bytes. Currently in use: 1861476 bytes. Free space: 522656 bytes. make: *** [check-fresh-line] Error 5 only with -with-debug is work > Also what gcc version are you using? $ gcc --version gcc.exe (GCC) 3.4.5 (mingw-vista special r3) other versions of gcc is not built clisp -- WBR, Yaroslav Kavenchuk |
From: Yaroslav K. <kav...@je...> - 2010-07-09 13:29:15
|
Vladimir Tzankov wrote: > Also what gcc version are you using? with $ gcc --version gcc.exe (GCC) 4.5.0 and with or without mt I get next: $ gdb ... GNU gdb (GDB) 7.0.50.20100202 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "mingw32". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from g:\gnu\home\src\clisp\clisp-2.49\build-full-debug/lisp.exe...done. Breakpoint 1 at 0x4296b2: file ../src/eval.d, line 4859. Breakpoint 2 at 0x426e06: file ../src/eval.d, line 4013. Breakpoint 3 at 0x4232cc: file ../src/eval.d, line 2943. Breakpoint 4 at 0x42b2b3: file ../src/eval.d, line 5753. Breakpoint 5 at 0x40b4a2: file ../src/spvw_garcol.d, line 3061. Breakpoint 6 at 0x53fe70: file ../src/foreign.d, line 273. Breakpoint 7 at 0x415e1a: file ../src/spvw.d, line 3310. Breakpoint 8 at 0x40e14f: file ../src/spvw.d, line 1039. Breakpoint 9 at 0x4041ab: file ../src/spvw.d, line 849. Breakpoint 10 at 0x40424f: file ../src/spvw.d, line 864. Breakpoint 11 at 0x4ee642: file ../src/error.d, line 378. Breakpoint 12 at 0x4ee5d5: file ../src/error.d, line 355. Breakpoint 13 at 0x4f1d6a: file ../src/errwin32.d, line 3881. Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal] Function "OS_file_error" not defined. Breakpoint 14 at 0x4f238e: file ../src/error.d, line 457. Breakpoint 15 at 0x4f232e: file ../src/errwin32.d, line 4142. Breakpoint 16 at 0x4e9947: file ../src/debug.d, line 504. Breakpoint 17 at 0x4edbef: file ../src/error.d, line 201. Num Type Disp Enb Address What 1 breakpoint keep n 0x004296b2 in funcall at ../src/eval.d:4859 xout fun 2 breakpoint keep n 0x00426e06 in apply at ../src/eval.d:4013 xout fun 3 breakpoint keep n 0x004232cc in eval at ../src/eval.d:2943 xout form 4 breakpoint keep n 0x0042b2b3 in interpret_bytecode_ at ../src/eval.d:5753 xout closure 5 breakpoint keep n 0x0040b4a2 in gar_col at ../src/spvw_garcol.d:3061 6 breakpoint keep y 0x0053fe70 in register_foreign_inttype at ../src/foreign.d:273 silent printf "%30s: %d %d\n", name_asciz, size, signed_p continue 7 breakpoint keep y 0x00415e1a in main_actions at ../src/spvw.d:3310 silent call check_funtab() continue 8 breakpoint keep y 0x0040e14f in error_notreached at ../src/spvw.d:1039 9 breakpoint keep y 0x004041ab in SP_ueber at ../src/spvw.d:849 10 breakpoint keep y 0x0040424f in STACK_ueber at ../src/spvw.d:864 11 breakpoint keep y 0x004ee642 in error at ../src/error.d:378 12 breakpoint keep y 0x004ee5d5 in prepare_error at ../src/error.d:355 13 breakpoint keep y 0x004f1d6a in OS_error at ../src/errwin32.d:3881 14 breakpoint keep y 0x004f238e in OS_filestream_error at ../src/error.d:457 15 breakpoint keep y 0x004f232e in errno_out_low at ../src/errwin32.d:4142 16 breakpoint keep y 0x004e9947 in break_driver at ../src/debug.d:504 17 breakpoint keep y 0x004edbef in signal_and_debug at ../src/error.d:201 Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal] Function "sigsegv_handler_failed" not defined. (gdb) g:\gnu\home\src\clisp\clisp-2.49\build-full-debug/.gdbinit:205: Error in sourced command file: No symbol "byteptr" in current context. (gdb) run Starting program: g:\gnu\home\src\clisp\clisp-2.49\build-full-debug/lisp.exe -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M lispinit.mem -x "(progn (dolist (s (quote (*terminal-io* *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) (format t \"~S = ~S~%\" s (symbol-value s))) (values))" [New Thread 3868.0x338] Reserved address range 0x19d80000-0x5d5affff . STACK size: 98222 [0x10dff40 0x1080088] SP depth: 515976 [New Thread 3868.0x704] [New Thread 3868.0xcbc] Breakpoint 11, error (errortype=parse_error, errorstring=0x5ac428 "~S: syntax error in filename ~S at position ~S") at ../src/error.d:378 378 prepare_error(errortype,errorstring,true); /* finish error message */ (gdb) bt #0 error (errortype=parse_error, errorstring=0x5ac428 "~S: syntax error in filename ~S at position ~S") at ../src/error.d:378 #1 0x0044a05c in C_parse_namestring () at ../src/pathname.d:2003 #2 0x0042a2f8 in funcall_subr (fun=..., args_on_stack=1) at ../src/eval.d:5227 #3 0x004296cf in funcall (fun=..., args_on_stack=1) at ../src/eval.d:4860 #4 0x0044a341 in coerce_xpathname (obj=...) at ../src/pathname.d:2065 #5 0x0044a36a in C_pathname () at ../src/pathname.d:2071 #6 0x0042a2f8 in funcall_subr (fun=..., args_on_stack=1) at ../src/eval.d:5227 #7 0x004296cf in funcall (fun=..., args_on_stack=1) at ../src/eval.d:4860 #8 0x0047aeef in handle_pathname (fd=0x774) at ../src/stream.d:15049 #9 0x0047afcd in handle_to_stream (fd=0x774, direction=..., buff_p=..., ext_fmt=..., eltype=...) at ../src/stream.d:15069 #10 0x0047b5a1 in make_standard_output_file_stream (handle=0x774) at ../src/stream.d:15136 #11 0x0047b663 in get_standard_output_file_stream () at ../src/stream.d:15172 #12 0x0047b7a2 in make_terminal_io () at ../src/stream.d:15221 #13 0x0047bb3c in _fu44__rl_completion_entry_function (batch_p=true) at ../src/stream.d:15339 #14 0x00417857 in main (argc=17, argv=0x3e44d0) at ../src/spvw.d:3812 (gdb) I'm not sure that this is related to previous error. -- WBR, Yaroslav Kavenchuk |
From: Vladimir T. <vtz...@gm...> - 2010-07-09 21:06:20
|
On 7/8/10, Vladimir Tzankov <vtz...@gm...> wrote: > On 6/28/10, Yaroslav Kavenchuk <kav...@je...> wrote: >> Clisp with debug and with mt built and tested is ok (only one mt test >> failed). Without debug built is ok, but test failed: >> >> ./lisp.exe -B . -N locale -E UTF-8 -Epathname 1:1 -Emisc 1:1 -norc -q -M >> lispinit.mem -x '(progn (dolist (s (quote (*terminal-io* >> *standard-output* *error-output* *query-io* *debug-io* *trace-output*))) >> (format t "~S = ~S~%" s (symbol-value s))) (values))' 2>&1 > >> fresh-line.out >> >> *** - handle_fault error2 ! address = 0x1f0 not in [0x19fe0000,0x1a1311d0) >> ! >> SIGSEGV cannot be cured. Fault address = 0x1f0. > Now that I have have working mingw build - I can reproduce the > problem. My tests show that it only happens with -O2 and is not > related to generational GC - something is going wrong in > stream.d:handle_to_stream() when the output is redirected (STACK_5 = > handle_pathname(fd); is the last line being executed - and > handle_pathname(fd) returns!). It's fixed in the cvs. The problem was wrong calling convention used for NtQueryInformationFile - NT API is __stdcall. Wondering how this was not noticed till now (apparently with MT and -O2 the stack is getting fatally corrupted while with single thread the overwritten data went unnoticed)! Vladimir |