Stephen J. Turnbull wrote:
Mike Kupfer writes:
> variables for pixel_to_glyph_translation(). If I got it right,
&db is
> 0xbfc176d8 and *db is
>
> (gdb) print {struct display_block}0x0a8b03a0
> $23 = {type = TEXT, start_pos = 4, end_pos = 4, runes = 0xa7c3148}
>
> HTH.
Oh, it does. (If correct -- I'm a little worried because I don't
understand why start_pos == 4 here.)
It does appear to be correct. I got another crash earlier this evening.
This time I had done the following operations:
1. dired an upstream source tree in one frame.
2. dired an edited source tree in a different frame.
3. in the dired window with the edited source, type M-! "diff -ur "
4. select the path in the "upstream" dired buffer
5. move the mouse back to the frame with the edited source, then
middle-click in the minibuffer, to the right of the text I had
entered so far. Or try to middle-click. I don't remember whether
I actually managed to click before the windows went away.
So I now have a shiny, new core file that gdb is quite happy to help me
analyze.
(gdb) bt
#0 0x00506422 in __kernel_vsyscall ()
#1 0x0057c926 in kill () from /lib/tls/i686/cmov/libc.so.6
#2 0x080ee7d1 in fatal_error_signal (sig=6) at emacs.c:3905
#3 <signal handler called>
#4 0x00506422 in __kernel_vsyscall ()
#5 0x0057c651 in raise () from /lib/tls/i686/cmov/libc.so.6
#6 0x0057fa82 in abort () from /lib/tls/i686/cmov/libc.so.6
#7 0x080efc84 in really_abort () at emacs.c:4794
#8 0x080ee8d7 in assert_failed (file=0x82fbaec "redisplay.c", line=9168,
expr=0x82e4fcc "pos >= 0 && pos < dy->largest_") at
emacs.c:4091
#9 0x0811b027 in Dynarr_verify_pos_atp (d=0xbb69858, pos=-1,
file=0x82fbaec "redisplay.c", line=9168) at array.h:204
#10 0x0821a5b9 in pixel_to_glyph_translation (f=0xb769e18, x_coord=248,
y_coord=605, col=0xbfd7596c, row=0xbfd75968, obj_x=0xbfd75964,
obj_y=0xbfd75960, w=0xbfd7595c, charpos=0xbfd75958, closest=0xbfd75954,
modeline_closest=0xbfd75950, obj1=0xbfd7594c, obj2=0xbfd75948)
at redisplay.c:9168
#11 0x08109017 in event_pixel_translation (event=192330724, char_x=0x0,
char_y=0x0, obj_x=0x0, obj_y=0x0, w=0xbfd759cc, bufp=0x0, closest=0x0,
modeline_closest=0x0, obj1=0x0, obj2=0x0) at events.c:2101
#12 0x081096e6 in Fevent_window (event=192330724) at events.c:2234
#13 0x080f8b55 in Ffuncall (nargs=2, args=0xbfd75ae4) at eval.c:4092
#14 0x080afbde in execute_optimized_program (
program=0xaf15a1c "\306\r!\256\003\307
\036>\310\r!\036A\311\r!\211\034\255\004\312\r!\211\030\255\005\313\314\f\"\036=\f\255\b\b?\255\004\315\r!\211\032\253\b\316\n\f\317#\256\n\b\255\a\316\b\016=\320#\036\067\321\r!\211\036?\255\t\322\016?!\255\003\016?\211\031\253\n\323\t\324\"\253\004\t\256\024\n\253\b\316\n\f\324#\256\n\b\255\a\316\b\016=\324#\211\036@\255\f\322\016@!\255\006\323\016@\324\"\036$\325\r!\036\070\t\253\n\323\t\320\"\253\004\t\256\"\016\070\253\v\326\016\070!\253\005\016\070\256\024\n\253\b\316\n\f\320#\256\n\b\255\a\316\b\016=\320#\033\327\r!\253\004ت1\016\067\254\004\t\253\004
~"...,
program_length=541, stack_depth=5, constants_data=0x8432794)
at bytecode.c:921
#15 0x080f746c in funcall_compiled_function (fun=139264304, nargs=1,
args=0xbfd75e38) at eval.c:3673
#16 0x080f8f24 in Ffuncall (nargs=2, args=0xbfd75e34) at eval.c:4141
#17 0x080fb731 in call1 (fn=137540376, arg0=192330724) at eval.c:5358
#18 0x0810f21f in execute_internal_event (event=192330724)
at event-stream.c:2969
#19 0x0810ef5c in Fsit_for (seconds=5, nodisplay=137775384)
at event-stream.c:2877
#20 0x080c3b5d in Fcommand_loop_1 () at cmdloop.c:618
#21 0x080c3988 in command_loop_1 (unused_dummy=137775384) at cmdloop.c:530
#22 0x080f4873 in condition_case_1 (handlers=137773728,
bfun=0x80c3957 <command_loop_1>, barg=137775384,
hfun=0x80c3569 <cmd_error>, harg=137775384) at eval.c:2103
#23 0x080c3681 in command_loop_3 () at cmdloop.c:287
#24 0x080c36a3 in command_loop_2 (unused_dummy=137775384) at cmdloop.c:300
#25 0x080c37f9 in call_command_loop (catch_errors=137775120) at cmdloop.c:361
#26 0x081d035d in Fread_minibuffer_internal (prompt=139037296)
at minibuf.c:192
#27 0x080f8b55 in Ffuncall (nargs=2, args=0xbfd76204) at eval.c:4092
#28 0x080afbde in execute_optimized_program (
program=0xbfd763d0 "\303 \304
V\253\n~\031\030\306\n!*\207\306\n!\207\"\003", program_length=20,
stack_depth=2, constants_data=0x845242c)
at bytecode.c:921
#29 0x080b8c7c in Fbyte_code (instructions=139063536, constants=138748960,
stack_depth=5) at bytecode.c:2762
#30 0x080f7dcb in Feval (form=138066060) at eval.c:3838
#31 0x080f4211 in internal_catch (tag=137759016, func=0x80f754a <Feval>,
arg=138066060, threw=0x0, thrown_tag=0x0, backtrace_before_throw=0x0)
at eval.c:1692
#32 0x080b350c in execute_rare_opcode (stack_ptr=0xbfd767d4,
stack_beg=0xbfd767d0, stack_end=0xbfd767e8,
unused_program_ptr=0xb023347 "\335a\253\b\362\363\354\"\202\221",
opcode=Bcatch) at bytecode.c:1499
#33 0x080af475 in execute_optimized_program (
program=0xb023204 "\016I\254\022\306 \307V\253\f\310 \311
a\253\005\312\313!\210\016?\253\021\016?\307V\253\v\306 \016?Y\253\004\314
\210\r\253\035\r9\253\r\315\r!\254\024\312\316\r\"\210\252\r\315\r@!\254\a\312\316\r@\"\210\317
\253\t\320\321\322\016J!\"\210\016@\036A\310 \036B\323 \036K\311 \032\324\325\326\306
\"!\031\327\n!\211\036C\323 a?\255\005\330\016C!\036L\330
\036M\b\036Nَ\332\t!q\210\016A\026@\333\334!\210\335\026\034\333\336!\210\333\337!\210\333\340!\210\341\026\036\342\026\037\016D\253\025\333\343!\210\016#\254\004\344\026#\333\345!\210\346\345\347\"\210\350\n\t\"\210\351\n!"...,
program_length=480,
stack_depth=6, constants_data=0x8468530) at bytecode.c:806
#34 0x080f746c in funcall_compiled_function (fun=139371056, nargs=7,
args=0xbfd76b28) at eval.c:3673
#35 0x080f8f24 in Ffuncall (nargs=8, args=0xbfd76b24) at eval.c:4141
#36 0x080afbde in execute_optimized_program (
program=0xb013ff4 "\306\035\307\f\v\n\306\t\256\002\310\306\b&\a)\207",
program_length=17, stack_depth=8, constants_data=0x8452108)
at bytecode.c:921
#37 0x080f746c in funcall_compiled_function (fun=139307120, nargs=1,
args=0xbfd76da0) at eval.c:3673
#38 0x080f83e3 in Feval (form=138030072) at eval.c:3899
#39 0x080f80b8 in Feval (form=138030096) at eval.c:3856
#40 0x080b9f90 in Fcall_interactively (function=137610504,
record_flag=137775384, keys=137775384) at callint.c:382
#41 0x080f6745 in Fcommand_execute (cmd=137610504, record_flag=137775384,
keys=137775384) at eval.c:3296
#42 0x08111795 in execute_command_event (command_builder=0xa5d31b0,
event=194355020) at event-stream.c:4257
#43 0x08112173 in Fdispatch_event (event=186298176) at event-stream.c:4561
#44 0x080c3bba in Fcommand_loop_1 () at cmdloop.c:625
#45 0x080c3988 in command_loop_1 (unused_dummy=137775384) at cmdloop.c:530
#46 0x080f4873 in condition_case_1 (handlers=137773728,
bfun=0x80c3957 <command_loop_1>, barg=137775384,
hfun=0x80c3569 <cmd_error>, harg=137775384) at eval.c:2103
#47 0x080c3681 in command_loop_3 () at cmdloop.c:287
#48 0x080c36a3 in command_loop_2 (unused_dummy=137775384) at cmdloop.c:300
#49 0x080f4211 in internal_catch (tag=137512224,
func=0x80c3698 <command_loop_2>, arg=137775384, threw=0x0,
thrown_tag=0x0, backtrace_before_throw=0x0) at eval.c:1692
#50 0x080c37b8 in initial_command_loop (load_me=137775384) at cmdloop.c:338
#51 0x080ed742 in xemacs_21_5_b29_i686_pc_linux (argc=1, argv=0xbfd77734,
unused_envp=0x0, restart=0) at emacs.c:2740
#52 0x080edf80 in main (argc=1, argv=0xbfd77734, unused_envp=0xbfd7773c)
at emacs.c:3188
(gdb) frame 10
#10 0x0821a5b9 in pixel_to_glyph_translation (f=0xb769e18, x_coord=248,
y_coord=605, col=0xbfd7596c, row=0xbfd75968, obj_x=0xbfd75964,
obj_y=0xbfd75960, w=0xbfd7595c, charpos=0xbfd75958, closest=0xbfd75954,
modeline_closest=0xbfd75950, obj1=0xbfd7594c, obj2=0xbfd75948)
at redisplay.c:9168
9168 rb = Dynarr_atp (db->runes, *col);
(gdb) print db
$1 = (struct display_block *) 0xb1a8d78
(gdb) print *db
$2 = {type = TEXT, start_pos = 4, end_pos = 4, runes = 0xbb69858}
...
(gdb) print *(db.runes)
$4 = {header = {type = 0, mark = 0, c_readonly = 0, lisp_readonly = 0,
free = 0, uid = 0}, base = 0xb19bd78, locked = 0, elsize_ = 48, len_ = 0,
largest_ = 81, max_ = 81}
And here's the Lisp backtrace:
# (unwind-protect ...)
event-window(#<motion-event 248, 605 0xd218>)
# bind (frame event)
default-mouse-motion-handler(#<motion-event 248, 605 0xd218>)
("execute_internal_event()" "[internal]")
# (unwind-protect ...)
# (unwind-protect ...)
# bind (inhibit-quit)
# (condition-case ... . error)
# (unwind-protect ...)
read-minibuffer-internal("Shell command: ")
byte-code("..." [standard-output standard-input prompt recursion-depth
minibuffer-depth t read-minibuffer-internal] 2)
# (catch exit ...)
# bind (mouse-grabbed-buffer current-prefix-arg minibuffer-history-variable
minibuffer-history-position minibuffer-scroll-window)
# (unwind-protect ...)
# bind (minibuffer-default oconfig mconfig frame buffer window oframe owindow dir
default abbrev-table history readp keymap initial-contents prompt)
read-from-minibuffer("Shell command: " nil #<keymap read-shell-command-map
size 5 0x38> nil shell-command-history nil nil)
# bind (minibuffer-completion-table default-value history initial-input prompt)
read-shell-command("Shell command: ")
(list (read-shell-command "Shell command: ") current-prefix-arg)
call-interactively(shell-command)
(dispatch-event "[internal]")
# (condition-case ... . error)
# (catch top-level ...)
Comparing the Lisp stacks for the 2 crashes (this week's and last
week's), I noticed that both crashes involve a motion event:
# (unwind-protect ...)
event-window(...)
# bind (frame event)
default-mouse-motion-handler(...)
("execute_internal_event()" "[internal]")
Let me know if there's anything else I should extract from the core
file.
mike
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta