This is under debian woody, latest CVS version.
,----
| - Start XEmacs (21.2) in no-window mode.
| - Do: (set-face-background-pixmap 'default "a/path/to/a/pixmap/file")
| - Do: C-x 2 (split-window)
`-----
For me, it crashes immediately. The concerned face-property is the following:
#<image-specifier
global=((tty) . [string :data "~/share/images/tile/marble.xpm"])
0x1c8>
which looks really bizarre to me.
Here the C stacktrace that I get (after a core dump, I can't run "XEmacs
-nw"
within gdb). What I don't understand is that XEmacs is calling
text_query_geometry on the *pixmap file name*. This sounds like a completely
bogus image specifier behavior to me, but maybe I'm wrong. I'm not familiar at
all with the specifier code, so I can't debug this. Any ideas are welcome.
Andy, do you have one ?
Current directory is /usr/local/src/dxemacs/src/
GNU gdb 5.0
Copyright 2000 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-linux-gnu"...
Core was generated by `./xemacs -vanilla -nw'.
Program terminated with signal 11, Segmentation fault.
Cannot access memory at address 0x40016e08
#0 0x40456dc1 in ?? ()
(gdb) up
#1 0x40456cf8 in ?? ()
(gdb)
#2 0x81517df in ensure_face_cachel_complete (cachel=0x0, domain={...},
charsets=0xbfffdf18 "") at /usr/local/src/XEmacs-21.2/src/faces.c:1119
(gdb)
#3 0x817e826 in query_string_geometry (string={...}, face={...},
width=0xbfffe03c, height=0xbfffe038, descent=0xbfffdff4, domain={...})
at /usr/local/src/XEmacs-21.2/src/glyphs.c:2303
(gdb)
#4 0x817eb6a in text_query_geometry (image_instance={...}, width=0xbfffe03c,
height=0xbfffe038, disp=IMAGE_DESIRED_GEOMETRY, domain={...})
at /usr/local/src/XEmacs-21.2/src/glyphs.c:2368
(gdb)
#5 0x817de8a in image_instance_layout (image_instance={...}, width=-1,
height=-1, xoffset=-2, yoffset=-2, domain={...})
at /usr/local/src/XEmacs-21.2/src/glyphs.c:2009
(gdb) print meths
$1 = (struct image_instantiator_methods *) 0x8382090
(gdb) print *meths
$2 = {symbol = {...}, device = {...}, keywords = 0x83820d8,
consoles = 0x83820f0, validate_method = 0, normalize_method = 0,
governing_domain_method = 0, possible_dest_types_method = 0,
instantiate_method = 0, post_instantiate_method = 0, property_method = 0,
set_property_method = 0, update_method = 0x817eb78 <text_update>,
redisplay_method = 0,
query_geometry_method = 0x817eac0 <text_query_geometry>, layout_method = 0}
(gdb) down
#4 0x817eb6a in text_query_geometry (image_instance={...}, width=0xbfffe03c,
height=0xbfffe038, disp=IMAGE_DESIRED_GEOMETRY, domain={...})
at /usr/local/src/XEmacs-21.2/src/glyphs.c:2368
(gdb)
#3 0x817e826 in query_string_geometry (string={...}, face={...},
width=0xbfffe03c, height=0xbfffe038, descent=0xbfffdff4, domain={...})
at /usr/local/src/XEmacs-21.2/src/glyphs.c:2303
(gdb) up
#4 0x817eb6a in text_query_geometry (image_instance={...}, width=0xbfffe03c,
height=0xbfffe038, disp=IMAGE_DESIRED_GEOMETRY, domain={...})
at /usr/local/src/XEmacs-21.2/src/glyphs.c:2368
(gdb)
#5 0x817de8a in image_instance_layout (image_instance={...}, width=-1,
height=-1, xoffset=-2, yoffset=-2, domain={...})
at /usr/local/src/XEmacs-21.2/src/glyphs.c:2009
(gdb)
#6 0x817a062 in instantiate_image_instantiator (governing_domain={...},
domain={...}, instantiator={...}, pointer_fg={...}, pointer_bg={...},
dest_mask=-1, glyph={...}) at /usr/local/src/XEmacs-21.2/src/glyphs.c:793
(gdb)
#7 0x818113d in image_instantiate (specifier={...}, matchspec={...},
domain={...}, instantiator={...}, depth={...})
at /usr/local/src/XEmacs-21.2/src/glyphs.c:3217
(gdb)
#8 0x80d06fb in call_with_suspended_errors_1 (opaque_arg={...})
at /usr/local/src/XEmacs-21.2/src/eval.c:2112
(gdb)
#9 0x80cf278 in internal_catch (tag={...},
func=0x80d0564 <call_with_suspended_errors_1>, arg={...}, threw=0xbfffe340)
at /usr/local/src/XEmacs-21.2/src/eval.c:1317
(gdb)
#10 0x80d0c5a in call_with_suspended_errors (
fun=0x8180944 <image_instantiate>, retval={...}, class={...}, errb={
really_unlikely_name_to_have_accidentally_in_a_non_errb_structure = 42},
nargs=5) at /usr/local/src/XEmacs-21.2/src/eval.c:2204
(gdb)
#11 0x821111c in specifier_instance_from_inst_list (specifier={...},
matchspec={...}, domain={...}, inst_list={...}, errb={
really_unlikely_name_to_have_accidentally_in_a_non_errb_structure = 42},
no_quit=1, depth={...}) at /usr/local/src/XEmacs-21.2/src/specifier.c:2506
(gdb)
#12 0x82115d0 in specifier_instance (specifier={...}, matchspec={...},
domain={...}, errb={
really_unlikely_name_to_have_accidentally_in_a_non_errb_structure = 42},
no_quit=1, no_fallback=1, depth={...})
at /usr/local/src/XEmacs-21.2/src/specifier.c:2625
(gdb)
#13 0x8151d3d in update_face_cachel_data (cachel=0xbfffe58c, domain={...},
face={...}) at /usr/local/src/XEmacs-21.2/src/faces.c:1194
(gdb)
#14 0x8152dec in add_face_cachel (w=0x86a1110, face={...})
at /usr/local/src/XEmacs-21.2/src/faces.c:1330
(gdb)
#15 0x8152fc0 in get_builtin_face_cache_index (w=0x86a1110, face={...})
at /usr/local/src/XEmacs-21.2/src/faces.c:1361
(gdb)
#16 0x8153072 in reset_face_cachels (w=0x86a1110)
at /usr/local/src/XEmacs-21.2/src/faces.c:1380
(gdb)
#17 0x8254dab in Fsplit_window (window={...}, chsize={...}, horflag={...})
at /usr/local/src/XEmacs-21.2/src/window.c:3637
(gdb)
--
/ / _ _ Didier Verna
http://www.inf.enst.fr/~verna/
- / / - / / /_/ / EPITA / LRDE mailto:didier@lrde.epita.fr
/_/ / /_/ / /__ / 14-16 rue Voltaire Tel. +33 (1) 53 14 59 47
94276 Kremlin-Bicêtre cedex Fax. +33 (1) 44 08 01 99