gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] ANSI Windows: in-package failure


From: Mike Thomas
Subject: [Gcl-devel] ANSI Windows: in-package failure
Date: Sun, 01 Feb 2004 22:21:39 +1000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

Hi Camm.

While delving further into the crash in the ANSI tests on Windows this evening with I accidentally fired up unixport/saved_gcl rather than unixport/saved_ansi_gcl.

It crashed while presenting an error about no "cl-user" package and further investigation shows that giving a bad package name to saved_ansi_gcl has the same result.
Do you get the same result on Linux?

On the basis that this is a really simple bug to reproduce and seems similar to the other bug I have made it the next target in my cargo-cult debugging program (you, of course, are the silver bird)!

Briefly and referring to the debugger output below, a check for an argument type to format goes wrong at line 179 of typespec.c where a NULL pointer is dereferenced, which is the fLformat() argument "control" (format.c).

This situation is coming from a call to Iinvoke_c_function_from_value_stack() in nfunlink.c where there are 4 arguments passed to c_apply_n are : x[0]=nil, x[1]=NULL, x[2]="GFGF", x[4]="No such package" where GFGF is the bad package name.

If my understanding of this sequence is correct, x[1] (NULL) is the control string to be used by format.

This means that at the call to Lformat() in the function LC27() in "clcs_kcl_cond.c" the format string is already NULL. Unfortunately it is late in the evening and the meaning of the value stack manipulations in LC27() have left me completely confused.

Cheers

Mike Thomas.


$ gdb unixport/saved_ansi_gcl.exe
GNU gdb 6.0
Copyright 2003 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) (use-fast-links nil)
Undefined command: "".  Try "help".
(gdb) r
Starting program: c:\cvs\head\gcl/unixport/saved_ansi_gcl.exe
       0x0064D830 BSS start in memory.
       0x00b40000 BSS offset in saved executable.
       0x00114e40 BSS size in bytes.
       0x00114e40 bytes read.
       0x10100000 Heap start in memory.
       0x00740000 Heap offset in executable.
       0x00400000 Heap size in bytes.
       0x10100000 file base.
GCL (GNU Common Lisp)  (2.7.0) Sun Feb  1 15:14:03 EAST 2004
Licensed under GNU Library General Public License
Dedicated to the memory of W. Schelter

Use (help) to get some basic information on how to use GCL.

>(use-fast-links nil)

Error in EVAL [or a callee]: The function USE-FAST-LINKS is undefined.

Fast links are on: do (use-fast-links nil) for debugging
Broken at EVAL.  Type :H for Help.
1 (Continue) Return to top level.
dbl:>>:q
Broken at EVAL.
NIL
dbl:>>:r

Top level.
>(si::use-fast-links nil)

NIL

>(in-package 'gfgf)

Error in IN-PACKAGE [or a callee]: A package error occurred on GFGF: "No such pa
ckage".

Broken at INVOKE-DEBUGGER.  Type :H for Help.
1 (Continue)
Program received signal SIGSEGV, Segmentation fault.
0x00476f35 in check_type_string (p=0x22e224) at typespec.c:179
179             while (type_of(*p) != t_string)
(gdb) bt
#0  0x00476f35 in check_type_string (p=0x22e224) at typespec.c:179
#1  0x00430e24 in fLformat (strm=0x10414b40, control=0x0) at format.c:2217
#2  0x00431ceb in c_apply_n (fn=0x430d4d <fLformat>, n=4, x=0x22e270)
   at funlink.c:366
#3 0x0044a841 in Iinvoke_c_function_from_value_stack (f=0x430d4d <fLformat>,
   fargd=32322) at nfunlink.c:293
#4  0x00430d48 in Lformat () at format.c:2194
#5  0x0049c15a in LC27 (base0=0x6bf5a4) at clcs_kcl_cond.c:790
#6  0x0041dd41 in funcall_no_event (fun=0x103fc3b8) at eval.c:369
#7  0x0041ebde in super_funcall_no_event (fun=0x103fc3b8) at eval.c:767
#8  0x004b4b8e in L29 () at clcs_restart.c:844
#9  0x0041d35a in funcall (fun=0x1029e380) at eval.c:173
#10 0x0043149e in call_or_link (sym=0x1033d8b8, link=0x635e98) at funlink.c:75
#11 0x004b6d71 in LnkT99 () at clcs_restart.c:1732
#12 0x004b4332 in L18 () at clcs_restart.c:551
#13 0x0041d35a in funcall (fun=0x1029e390) at eval.c:173
#14 0x0041eb05 in super_funcall (fun=0x1029e390) at eval.c:743
#15 0x0041fe80 in ifuncall3 (fun=0x1033dad4, arg1=0x103d75e8, arg2=0x1010a4c8,
   arg3=0x6b3f80) at eval.c:1335
#16 0x0045b17a in call_structure_print_function (x=0x103d75e8, level=0)
   at print.d:542
#17 0x0045d50b in write_object (x=0x103d75e8, level=0) at print.d:1334
#18 0x0045f45d in princ (obj=0x103d75e8, strm=0x1010a4c8) at print.d:1899
---Type <return> to continue, or q <return> to quit---q
Quit (expect signal SIGINT when the program is resumed)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]