From: Sam S. <sd...@po...> - 2006-09-04 04:32:34
|
Hi I just checked in a rather large change: now the closure object can contain the doc string and lambda list (depending on the OPTIMIZE SPACE declration). please test the latest cvs head (note that you will need to recompile all your *.fas files). http://www.podval.org/~sds/clisp/impnotes/declarations.html#space-decl thanks. -- Sam Steingold (http://www.podval.org/~sds) on Fedora Core release 5 (Bordeaux) http://openvotingconsortium.org http://iris.org.il http://honestreporting.com http://truepeace.org http://jihadwatch.org http://thereligionofpeace.com There is an exception to every rule, including this one. |
From: Stephen C. <s1...@me...> - 2006-09-04 05:07:07
|
Sam Steingold wrote: > I just checked in a rather large change: now the closure object can > contain the doc string and lambda list (depending on the OPTIMIZE SPACE > declration). please test the latest cvs head (note that you will need to > recompile all your *.fas files). > http://www.podval.org/~sds/clisp/impnotes/declarations.html#space-decl > thanks. Same configuration as for https://sourceforge.net/tracker/index.php?func=detail&aid=1550803&group_id=1355&atid=101355 , except updated to today's CVS: I get a cascade of test failures beginning with the following: (DEF-CALL-OUT C-SELF (:NAME "ffi_identity") (:DOCUMENTATION "return the pointer argument as is") (:ARGUMENTS (OBJ C-POINTER)) (:RETURN-TYPE C-POINTER) (:LANGUAGE :STDC)) [SIMPLE-UNBOUND-VARIABLE]: SYSTEM::DECLARED-OPTIMIZE: symbol SYSTEM::*DENV* has no value CLISP quits a little while later with an error message; see http://scompall.nocandysw.com/_local/clisp-20060903-errors.log for a log (29KB, 476 lines) beginning with that failure. Complete log (543KB, 9800 lines) available if you like. I compared this to my log from 1 September, in which this failure does not occur. There are no local changes in my tree; it is a pure CVS head. -- Stephen Compall http://scompall.nocandysw.com/blog |
From: Sam S. <sd...@po...> - 2006-09-04 05:56:14
|
> * Stephen Compall <f1...@zr...t> [2006-09-04 00:07:02 -0500]: > > (DEF-CALL-OUT C-SELF (:NAME "ffi_identity") (:DOCUMENTATION "return > the pointer argument as is") (:ARGUMENTS (OBJ C-POINTER)) > (:RETURN-TYPE C-POINTER) (:LANGUAGE :STDC)) > [SIMPLE-UNBOUND-VARIABLE]: SYSTEM::DECLARED-OPTIMIZE: symbol > SYSTEM::*DENV* has no value you are too fast :-) I fixed this a couple of minutes after I sent the message. -- Sam Steingold (http://www.podval.org/~sds) on Fedora Core release 5 (Bordeaux) http://camera.org http://palestinefacts.org http://thereligionofpeace.com http://pmw.org.il http://israelunderattack.slide.com MS Windows vs IBM OS/2: Why marketing matters more than technology... |
From: Yaroslav K. <kav...@tu...> - 2006-09-04 18:16:08
|
build on mingw is ok (I did not test more) Thanks! -- WBR, Yaroslav Kavenchuk. |
From: Yaroslav K. <kav...@je...> - 2006-09-05 06:39:00
|
Oops... $ ./configure --with-mingw --with-readline --with-module=dirkey --with-module=pcre --with-module=rawsock --with-module=wildcard --with-module=zlib --with-module=bindings/win32 --with-libreadline-prefix=/usr/local --with-libtermcap-prefix=/usr/local --with-libpcre-prefix=/usr/local --build build-full ... ;; build-log: http://kavenchuk.googlepages.com/build.log $ cd build-full/ $ full/lisp.exe -M full/lispinit.mem --version GNU CLISP 2.39 (2006-07-16) (built 3366388079) (memory 3366388935) Software: GNU C 3.4.5 (mingw special) gcc -mno-cygwin -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O2 -fexpensive-optimizations -falign-functions=4 -D_WIN32 -DUNICODE -DDYNAMIC_FFI -I. -x none /usr/local/lib/libintl.a -L/usr/local/lib /usr/local/lib/libiconv.a libcharset.a libavcall.a libcallback.a /usr/local/lib/libreadline.a -ltermcap -luser32 -lws2_32 -lole32 -loleaut32 -luuid /usr/local/lib/libiconv.a -L/usr/local/lib -lsigsegv SAFETY=0 HEAPCODES STANDARD_HEAPCODES GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY libsigsegv 2.4 libiconv 1.11 libreadline 5.0 Features: (ZLIB WILDCARD RAWSOCK PCRE DIRKEY READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 WIN32) C Modules: (clisp i18n syscalls regexp readline dirkey pcre rawsock wildcard zlib) Installation directory: .\ User language: ENGLISH Machine: PC/386 (PC/686) home [127.0.0.1] $ full/lisp.exe -M full/lispinit.mem -norc ... [1]> (win32:GetStdHandle win32:STD_OUTPUT_HANDLE) *** - handle_fault error2 ! address = 0x2efb0053 not in [0x19d70000,0x19ede784) ! SIGSEGV cannot be cured. Fault address = 0x2efb0053. Permanently allocated: 92672 bytes. Currently in use: 2054932 bytes. Free space: 498400 bytes. -- WBR, Yaroslav Kavenchuk. |
From: Sam S. <sd...@gn...> - 2006-09-05 16:34:06
|
Yaroslav Kavenchuk wrote: > Oops... > > $ ./configure > --with-mingw --with-readline > --with-module=dirkey --with-module=pcre > --with-module=rawsock > --with-module=wildcard --with-module=zlib > --with-module=bindings/win32 > --with-libreadline-prefix=/usr/local > --with-libtermcap-prefix=/usr/local > --with-libpcre-prefix=/usr/local > --build build-full > ... > ;; build-log: http://kavenchuk.googlepages.com/build.log > > $ cd build-full/ > > $ full/lisp.exe -M full/lispinit.mem --version > GNU CLISP 2.39 (2006-07-16) (built 3366388079) (memory 3366388935) > Software: GNU C 3.4.5 (mingw special) > gcc -mno-cygwin -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit > -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O2 > -fexpensive-optimizations -falign-functions=4 -D_WIN32 -DUNICODE > -DDYNAMIC_FFI -I. -x none /usr/local/lib/libintl.a -L/usr/local/lib > /usr/local/lib/libiconv.a libcharset.a libavcall.a libcallback.a > /usr/local/lib/libreadline.a -ltermcap -luser32 -lws2_32 -lole32 > -loleaut32 -luuid /usr/local/lib/libiconv.a -L/usr/local/lib -lsigsegv > SAFETY=0 HEAPCODES STANDARD_HEAPCODES GENERATIONAL_GC SPVW_BLOCKS > SPVW_MIXED TRIVIALMAP_MEMORY > libsigsegv 2.4 > libiconv 1.11 > libreadline 5.0 > Features: > (ZLIB WILDCARD RAWSOCK PCRE DIRKEY READLINE REGEXP SYSCALLS I18N LOOP > COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS > GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI GETTEXT UNICODE > BASE-CHAR=CHARACTER PC386 WIN32) > C Modules: (clisp i18n syscalls regexp readline dirkey pcre rawsock > wildcard zlib) > Installation directory: .\ > User language: ENGLISH > Machine: PC/386 (PC/686) home [127.0.0.1] > > $ full/lisp.exe -M full/lispinit.mem -norc > ... > [1]> (win32:GetStdHandle win32:STD_OUTPUT_HANDLE) > > *** - handle_fault error2 ! address = 0x2efb0053 not in > [0x19d70000,0x19ede784) ! > SIGSEGV cannot be cured. Fault address = 0x2efb0053. > Permanently allocated: 92672 bytes. > Currently in use: 2054932 bytes. > Free space: 498400 bytes. I no longer have access to woe32, so I cannot debug this. FFI appears to work for bindings/glibc/ as well as [22]> (def-call-out c-malloc (:arguments (l long)) (:name "malloc") (:language :stdc) (:return-type c-pointer) (:library :default)) C-MALLOC [23]> (c-malloc 10) #<FOREIGN-ADDRESS #x093EF228> [24]> (c-malloc 10) #<FOREIGN-ADDRESS #x093EF268> [25]> (c-malloc 10) #<FOREIGN-ADDRESS #x093EF288> [26]> (c-malloc 10) #<FOREIGN-ADDRESS #x093EF298> could you please try to debug this? thanks. Sam. |
From: Yaroslav K. <kav...@tu...> - 2006-09-05 19:18:55
|
Sam Steingold wrote: > could you please try to debug this? > [1]> (use-package :ffi) T [2]> (def-call-out c-malloc (:arguments (l long)) (:name "malloc") (:language :stdc) (:return-type c-pointer) (:library :default)) C-MALLOC [3]> (c-malloc 10) #<FOREIGN-ADDRESS #x003DFDE0> [4]> (c-malloc 10) #<FOREIGN-ADDRESS #x01676EA0> [5]> (c-malloc 10) #<FOREIGN-ADDRESS #x01676EB8> [6]> (c-malloc 10) #<FOREIGN-ADDRESS #x01676ED0> [7]> -- WBR, Yaroslav Kavenchuk. |
From: Sam S. <sd...@gn...> - 2006-09-05 19:23:01
|
Yaroslav Kavenchuk wrote: > Sam Steingold wrote: >> could you please try to debug this? >> > > [1]> (use-package :ffi) > T > [2]> (def-call-out c-malloc (:arguments (l long)) > (:name "malloc") (:language :stdc) (:return-type c-pointer) > (:library :default)) > C-MALLOC > [3]> (c-malloc 10) > #<FOREIGN-ADDRESS #x003DFDE0> > [4]> (c-malloc 10) > #<FOREIGN-ADDRESS #x01676EA0> > [5]> (c-malloc 10) > #<FOREIGN-ADDRESS #x01676EB8> > [6]> (c-malloc 10) > #<FOREIGN-ADDRESS #x01676ED0> > [7]> ok - so why does the woe32 function crash? did it crash before the patch? could you please run this under gdb and report the backtrace? thanks. Sam. |
From: Yaroslav K. <kav...@tu...> - 2006-09-05 19:31:24
|
Sam Steingold wrote: > ok - so why does the woe32 function crash? > did it crash before the patch? > could you please run this under gdb and report the backtrace? $ gdb --args lisp.exe -M lispinit.mem -norc GNU gdb 5.2.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-mingw32"... (gdb) run Starting program: C:\gnu\home\src\clisp\clisp\build-full\full/lisp.exe -M lispinit.mem -norc Program received signal SIGSEGV, Segmentation fault. 0x00464079 in closed_buffered (stream=0x19edd68d) at stream.d:7985 7985 BufferedStream_buffstart(stream) = 0; # delete buffstart (unnecessary) (gdb) backtrace #0 0x00464079 in closed_buffered (stream=0x19edd68d) at stream.d:7985 #1 0x0022fc08 in ?? () #2 0x0043c7e0 in loadmem_from_handle (handle=0x4f8058, filename=0x4f8084 "\024\020Q") at spvw_memfile.d:1622 #3 0x0043caf9 in loadmem (filename=0x4f8058 "\v\020Q") at spvw_memfile.d:922 #4 0x0043daf5 in init_memory (p=0x5b66c8) at spvw.d:2922 #5 0x0043df7a in main (argc=4, argv=0x3d4340) at spvw.d:3278 (gdb) -- WBR, Yaroslav Kavenchuk. |
From: Sam S. <sd...@gn...> - 2006-09-05 19:38:19
|
Yaroslav Kavenchuk wrote: > Sam Steingold wrote: >> ok - so why does the woe32 function crash? >> did it crash before the patch? >> could you please run this under gdb and report the backtrace? > > $ gdb --args lisp.exe -M lispinit.mem -norc > GNU gdb 5.2.1 > Copyright 2002 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i686-pc-mingw32"... > (gdb) run > Starting program: C:\gnu\home\src\clisp\clisp\build-full\full/lisp.exe > -M lispinit.mem -norc > > Program received signal SIGSEGV, Segmentation fault. > 0x00464079 in closed_buffered (stream=0x19edd68d) at stream.d:7985 > 7985 BufferedStream_buffstart(stream) = 0; # delete buffstart > (unnecessary) > (gdb) backtrace > #0 0x00464079 in closed_buffered (stream=0x19edd68d) at stream.d:7985 > #1 0x0022fc08 in ?? () > #2 0x0043c7e0 in loadmem_from_handle (handle=0x4f8058, > filename=0x4f8084 "\024\020Q") at spvw_memfile.d:1622 > #3 0x0043caf9 in loadmem (filename=0x4f8058 "\v\020Q") at > spvw_memfile.d:922 > #4 0x0043daf5 in init_memory (p=0x5b66c8) at spvw.d:2922 > #5 0x0043df7a in main (argc=4, argv=0x3d4340) at spvw.d:3278 > (gdb) > > this is because of generational GC. in gdb: handle SIGSEGV noprint nostop handle SIGBUS noprint nostop or recompile without Gen GC |
From: Yaroslav K. <kav...@tu...> - 2006-09-05 19:50:02
|
Sam Steingold wrote: > this is because of generational GC. > in gdb: > handle SIGSEGV noprint nostop > handle SIGBUS noprint nostop > or recompile without Gen GC $ gdb --args lisp.exe -M lispinit.mem -norc GNU gdb 5.2.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-mingw32"... (gdb) handle SIGSEGV noprint nostop Signal Stop Print Pass to program Description SIGSEGV No No Yes Segmentation fault (gdb) handle SIGBUS noprint nostop Signal Stop Print Pass to program Description SIGBUS No No Yes Bus error (gdb) run Starting program: C:\gnu\home\src\clisp\clisp\build-full\full/lisp.exe -M lispinit.mem -norc Program exited with code 030000000005. |
From: Sam S. <sd...@gn...> - 2006-09-05 19:55:59
|
Yaroslav Kavenchuk wrote: > Sam Steingold wrote: >> this is because of generational GC. >> in gdb: >> handle SIGSEGV noprint nostop >> handle SIGBUS noprint nostop >> or recompile without Gen GC > > $ gdb --args lisp.exe -M lispinit.mem -norc > GNU gdb 5.2.1 > Copyright 2002 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i686-pc-mingw32"... > (gdb) handle SIGSEGV noprint nostop > Signal Stop Print Pass to program Description > SIGSEGV No No Yes Segmentation fault > (gdb) handle SIGBUS noprint nostop > Signal Stop Print Pass to program Description > SIGBUS No No Yes Bus error > (gdb) run > Starting program: C:\gnu\home\src\clisp\clisp\build-full\full/lisp.exe > -M lispinit.mem -norc you gotta get creative here. before "run" - set a break point in C_foreign_call_out and when it is hit, re-enable sigsegv. or just rebuild without gen gc |
From: Yaroslav K. <kav...@tu...> - 2006-09-05 20:02:47
|
Sam Steingold wrote: > you gotta get creative here. > before "run" - set a break point in C_foreign_call_out and when it is > hit, re-enable sigsegv. > > or just rebuild without gen gc Excuse me, but how rebuild clisp without gen gc? |
From: Sam S. <sd...@gn...> - 2006-09-05 20:08:36
|
Yaroslav Kavenchuk wrote: > Sam Steingold wrote: >> you gotta get creative here. >> before "run" - set a break point in C_foreign_call_out and when it is >> hit, re-enable sigsegv. >> >> or just rebuild without gen gc > > Excuse me, but how rebuild clisp without gen gc? read the comments in the beginning of src/lispbibl.d: add NO_GENERATIONAL_GC to CFLAGS |
From: Yaroslav K. <kav...@tu...> - 2006-09-06 05:07:01
|
$ gdb --args lisp.exe -M lispinit.mem -norc GNU gdb 5.2.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-mingw32"... (gdb) run Starting program: C:\gnu\home\src\clisp\clisp\build-full\full/lisp.exe -M lispinit.mem -norc Program received signal SIGSEGV, Segmentation fault. 0x0046337b in iarray_displace_check (array={one_o = 788725848}, size=1062279661, index=0x22a6ac) at array.d:277 277 if (*index+size > Sarray_length(array)) (gdb) backtrace #0 0x0046337b in iarray_displace_check (array={one_o = 788725848}, size=1062279661, index=0x22a6ac) at array.d:277 #1 0x004e22f8 in unpack_string_ro (string={one_o = 1526869763}, len=0x22a6b0, offset=0x22a6ac) at charstrg.d:572 #2 0x00461a87 in object_handle (library={one_o = 1526869763}, name= {one_o = 1526869763}) at foreign.d:4129 #3 0x00461f21 in update_library (acons={one_o = 1526869763}, version=0) at foreign.d:4174 #4 0x00462361 in validate_fpointer (obj={one_o = 434976137}) at foreign.d:4265 #5 0x0045580d in check_faddress_valid (fa={one_o = 435005341}) at foreign.d:610 #6 0x0045f4a8 in C_foreign_call_out (argcount=1, rest_args_pointer=0x1100114) at foreign.d:3406 #7 0x00509fa4 in funcall_subr (fun={one_o = 5781522}, args_on_stack=1) at eval.d:5325 #8 0x005093e3 in funcall (fun={one_o = 5781522}, args_on_stack=2) at eval.d:4930 #9 0x00506d31 in eval_ffunction (ffun={one_o = 435005357}) at eval.d:3986 #10 0x00503c87 in eval1 (form={one_o = 1526853811}) at eval.d:3049 #11 0x00503788 in eval (form={one_o = 1526853811}) at eval.d:2899 #12 0x0053e316 in C_read_eval_print () at debug.d:408 #13 0x0050a00a in funcall_subr (fun={one_o = 5755186}, args_on_stack=2) at eval.d:5330 #14 0x0050945a in funcall (fun={one_o = 5790065}, args_on_stack=2) at eval.d:4937 #15 0x0050d2d5 in interpret_bytecode_ (closure={one_o = 435031201}, codeptr=0x19e74954, byteptr_in=0x19e74966 "╞P\200J") at eval.d:7021 #16 0x0050add9 in funcall_closure (closure={one_o = 435031201}, args_on_stack=0) at eval.d:5771 #17 0x00509410 in funcall (fun={one_o = 435031201}, args_on_stack=0) at eval.d:4932 #18 0x0053b476 in C_driver () at control.d:1976 #19 0x0050d3d2 in interpret_bytecode_ (closure={one_o = 434588305}, codeptr=0x19e74900, byteptr_in=0x19e74912 "G") at eval.d:7027 #20 0x0050add9 in funcall_closure (closure={one_o = 434588305}, args_on_stack=0) at eval.d:5771 #21 0x00509410 in funcall (fun={one_o = 434588305}, args_on_stack=0) at eval.d:4932 #22 0x0050dbbc in interpret_bytecode_ (closure={one_o = 434793521}, codeptr=0x19dd4798, byteptr_in=0x19dd47aa "") at eval.d:7077 #23 0x0050add9 in funcall_closure (closure={one_o = 434793521}, args_on_stack=0) at eval.d:5771 #24 0x00509410 in funcall (fun={one_o = 434793521}, args_on_stack=0) at eval.d:4932 #25 0x0050dbbc in interpret_bytecode_ (closure={one_o = 434794621}, codeptr=0x19dd4798, byteptr_in=0x19dd47aa "") at eval.d:7077 #26 0x0050add9 in funcall_closure (closure={one_o = 434794621}, args_on_stack=0) at eval.d:5771 #27 0x00509410 in funcall (fun={one_o = 434794621}, args_on_stack=0) at eval.d:4932 #28 0x0050dbbc in interpret_bytecode_ (closure={one_o = 434912705}, codeptr=0x19dd4798, byteptr_in=0x19dd47aa "") at eval.d:7077 #29 0x0050add9 in funcall_closure (closure={one_o = 434912705}, args_on_stack=0) at eval.d:5771 #30 0x00509410 in funcall (fun={one_o = 434912705}, args_on_stack=0) at eval.d:4932 #31 0x0050dbbc in interpret_bytecode_ (closure={one_o = 434914161}, codeptr=0x19dd4798, byteptr_in=0x19dd47aa "") at eval.d:7077 #32 0x0050add9 in funcall_closure (closure={one_o = 434914161}, args_on_stack=0) at eval.d:5771 #33 0x00509410 in funcall (fun={one_o = 434914161}, args_on_stack=0) at eval.d:4932 #34 0x0050dbbc in interpret_bytecode_ (closure={one_o = 435011385}, codeptr=0x19dd4798, byteptr_in=0x19dd47aa "") at eval.d:7077 #35 0x0050add9 in funcall_closure (closure={one_o = 435011385}, args_on_stack=0) at eval.d:5771 #36 0x00509410 in funcall (fun={one_o = 435011385}, args_on_stack=0) at eval.d:4932 #37 0x0053e655 in driver () at debug.d:477 #38 0x0044eb18 in main_actions (p=0x638678) at spvw.d:3231 #39 0x0044d84d in main (argc=4, argv=0x3d43b8) at spvw.d:3367 (gdb) |
From: Sam S. <sd...@gn...> - 2006-09-06 13:26:41
|
Yaroslav Kavenchuk wrote: > 0x0046337b in iarray_displace_check (array={one_o = 788725848}, > size=1062279661, index=0x22a6ac) at array.d:277 > 277 if (*index+size > Sarray_length(array)) > (gdb) backtrace > #0 0x0046337b in iarray_displace_check (array={one_o = 788725848}, > size=1062279661, index=0x22a6ac) at array.d:277 > #1 0x004e22f8 in unpack_string_ro (string={one_o = 1526869763}, > len=0x22a6b0, > offset=0x22a6ac) at charstrg.d:572 > #2 0x00461a87 in object_handle (library={one_o = 1526869763}, name= > {one_o = 1526869763}) at foreign.d:4129 > #3 0x00461f21 in update_library (acons={one_o = 1526869763}, version=0) > at foreign.d:4174 > #4 0x00462361 in validate_fpointer (obj={one_o = 434976137}) at > foreign.d:4265 > #5 0x0045580d in check_faddress_valid (fa={one_o = 435005341}) > at foreign.d:610 > #6 0x0045f4a8 in C_foreign_call_out (argcount=1, > rest_args_pointer=0x1100114) > at foreign.d:3406 now please walk these frames and print variables with "p" (for C), "xout" and "zout" (for Lisp). e.g.: (gdb) p size (gdb) p *index (gdb) xout array (gdb) up (gdb) xout string (gdb) p *len (gdb) up (gdb) xout library (gdb) xout name (gdb) up (gdb) xout acons (gdb) up (gdb) xout obj (gdb) xout STACK[-1] etc etc etc please try to figure out what is wrong. thanks. Sam. |
From: Yaroslav K. <kav...@je...> - 2006-09-07 11:11:10
|
Sam Steingold wrote: > now please walk these frames and print variables with "p" (for C), > "xout" and "zout" (for Lisp). e.g.: > Program received signal SIGSEGV, Segmentation fault. 0x00463ecb in iarray_displace_check (array={one_o = 788725848}, size=1062279663, index=0x22a6ac) at array.d:277 277 if (*index+size > Sarray_length(array)) (gdb) p size $1 = 1062279663 (gdb) p *index $2 = 0 (gdb) xout array #<huh?! address=0x2f030058>{one_o = 788725848} (gdb) up #1 0x004e2e48 in unpack_string_ro (string={one_o = 1610100483}, len=0x22a6b0, offset=0x22a6ac) at charstrg.d:572 572 return iarray_displace_check(string,size,offset); (gdb) xout string ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> ... <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} (gdb) p *len $3 = 1062279663 (gdb) up #2 0x004625d7 in object_handle (library={one_o = 1610100483}, name= {one_o = 1610100483}) at foreign.d:4129 4129 with_string_0(name,O(foreign_encoding),namez, { (gdb) xout library ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> ... <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} (gdb) xout name ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> ... <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} (gdb) up #3 0x00462a71 in update_library (acons={one_o = 1610100483}, version=0) at foreign.d:4174 4174 var void* handle = object_handle(*acons_,fn); (gdb) xout acons ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> ... <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} (gdb) xout fn ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> ... <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} (gdb) up #4 0x00462eb1 in validate_fpointer (obj={one_o = 435107289}) at foreign.d:4265 4265 update_library(acons,0); /*version??*/ (gdb) xout obj #<FOREIGN-POINTER 0x79430000>{one_o = 435107289} (gdb) xout STACK[-1] (#<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> <...> <...> ... <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100499} (gdb) Is some wrong? Or try further? -- WBR, Yaroslav Kavenchuk. |
From: Sam S. <sd...@gn...> - 2006-09-07 13:34:37
|
Yaroslav Kavenchuk wrote: > Sam Steingold wrote: >> now please walk these frames and print variables with "p" (for C), >> "xout" and "zout" (for Lisp). e.g.: >> > > Program received signal SIGSEGV, Segmentation fault. > 0x00463ecb in iarray_displace_check (array={one_o = 788725848}, > size=1062279663, index=0x22a6ac) at array.d:277 > 277 if (*index+size > Sarray_length(array)) > (gdb) p size > $1 = 1062279663 > (gdb) p *index > $2 = 0 > (gdb) xout array > #<huh?! address=0x2f030058>{one_o = 788725848} > (gdb) up > #1 0x004e2e48 in unpack_string_ro (string={one_o = 1610100483}, > len=0x22a6b0, > offset=0x22a6ac) at charstrg.d:572 > 572 return iarray_displace_check(string,size,offset); > (gdb) xout string > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> > ... > <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} > (gdb) p *len > $3 = 1062279663 > (gdb) up > #2 0x004625d7 in object_handle (library={one_o = 1610100483}, name= > {one_o = 1610100483}) at foreign.d:4129 > 4129 with_string_0(name,O(foreign_encoding),namez, { > (gdb) xout library > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> > ... > <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} > (gdb) xout name > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> > ... > <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} > (gdb) up > #3 0x00462a71 in update_library (acons={one_o = 1610100483}, version=0) > at foreign.d:4174 > 4174 var void* handle = object_handle(*acons_,fn); > (gdb) xout acons > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> > ... > <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} > (gdb) xout fn > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION > ("kernel32.dll" #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> > ... > <...> <...> <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100483} > (gdb) up > #4 0x00462eb1 in validate_fpointer (obj={one_o = 435107289}) at > foreign.d:4265 > 4265 update_library(acons,0); /*version??*/ > (gdb) xout obj > #<FOREIGN-POINTER 0x79430000>{one_o = 435107289} > (gdb) xout STACK[-1] > (#<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION ("kernel32.dll" > #<FOREIGN-POINTER 0x79430000> #<FOREIGN-FUNCTION (<...> <...> <...> > ... > <...> <...> <...> <...> <...> <...>)>)>){one_o = 1610100499} > (gdb) > > Is some wrong? Or try further? thanks, you pinpointed the bug pretty clearly. here is the fix, please try it. --- foreign.d 04 Sep 2006 06:00:58 -0400 1.157 +++ foreign.d 07 Sep 2006 09:32:27 -0400 @@ -4376,7 +4376,7 @@ } var object ffun = allocate_ffunction(); var object fvd = STACK_(0+1); - TheFfunction(ffun)->ff_name = STACK_(3+1); + TheFfunction(ffun)->ff_name = STACK_(4+1); TheFfunction(ffun)->ff_address = STACK_0; TheFfunction(ffun)->ff_resulttype = TheSvector(fvd)->data[1]; TheFfunction(ffun)->ff_argtypes = TheSvector(fvd)->data[2]; |
From: Yaroslav K. <kav...@je...> - 2006-09-07 14:14:35
|
Sam Steingold wrote: > here is the fix, please try it. > ... Thanks! All is work now. -- WBR, Yaroslav Kavenchuk. |
From: Reini U. <ru...@x-...> - 2006-09-07 19:12:52
|
Yaroslav Kavenchuk schrieb: > Sam Steingold wrote: >> here is the fix, please try it. >> ... > > Thanks! All is work now. Problem verified for cygwin also. Sam's fix ditto. Thanks to both! Please commit the onliner. before: $ full/lisp -q -ansi -E 1:1 -M full/lispinit.mem -norc \ -x '(win32:GetStdHandle win32:STD_OUTPUT_HANDLE)' Segmentation fault (core dumped) after: $ full/lisp -q -ansi -E 1:1 -M full/lispinit.mem -norc \ -x '(win32:GetStdHandle win32:STD_OUTPUT_HANDLE)' #<FOREIGN-ADDRESS #x0000001F> BTW: -lintl detection is now much better than before. I didn't have to manually fix the LIBS line to remove duplicate -lintl's. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ http://helsinki.at/ http://spacemovie.mur.at/ |
From: Yaroslav K. <kav...@tu...> - 2006-09-05 19:34:40
|
Sam Steingold wrote: > did it crash before the patch? Original 2.39 not crash -- WBR, Yaroslav Kavenchuk. |
From: Yaroslav K. <kav...@tu...> - 2006-09-04 21:01:11
|
Oops... $ ./configure --with-mingw --with-readline --with-module=dirkey --with-module=pcre --with-module=rawsock --with-module=wildcard --with-module=zlib --with-module=bindings/win32 --with-libreadline-prefix=/usr/local --with-libtermcap-prefix=/usr/local --with-libpcre-prefix=/usr/local --build build-full ... $ cd build-full/ $ full/lisp.exe -M full/lispinit.mem --version GNU CLISP 2.39 (2006-07-16) (built 3366388079) (memory 3366388935) Software: GNU C 3.4.5 (mingw special) gcc -mno-cygwin -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-type -Wmissing-declarations -Wno-sign-compare -O2 -fexpensive-optimizations -falign-functions=4 -D_WIN32 -DUNICODE -DDYNAMIC_FFI -I. -x none /usr/local/lib/libintl.a -L/usr/local/lib /usr/local/lib/libiconv.a libcharset.a libavcall.a libcallback.a /usr/local/lib/libreadline.a -ltermcap -luser32 -lws2_32 -lole32 -loleaut32 -luuid /usr/local/lib/libiconv.a -L/usr/local/lib -lsigsegv SAFETY=0 HEAPCODES STANDARD_HEAPCODES GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRIVIALMAP_MEMORY libsigsegv 2.4 libiconv 1.11 libreadline 5.0 Features: (ZLIB WILDCARD RAWSOCK PCRE DIRKEY READLINE REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI GETTEXT UNICODE BASE-CHAR=CHARACTER PC386 WIN32) C Modules: (clisp i18n syscalls regexp readline dirkey pcre rawsock wildcard zlib) Installation directory: .\ User language: ENGLISH Machine: PC/386 (PC/686) home [127.0.0.1] $ full/lisp.exe -M full/lispinit.mem -norc ... [1]> (win32:GetStdHandle win32:STD_OUTPUT_HANDLE) *** - handle_fault error2 ! address = 0x2efb0053 not in [0x19d70000,0x19ede784) ! SIGSEGV cannot be cured. Fault address = 0x2efb0053. Permanently allocated: 92672 bytes. Currently in use: 2054932 bytes. Free space: 498400 bytes. -- WBR, Yaroslav Kavenchuk. |