[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Error in menu-bar-update-hook: (error Point before start of p rope r
From: |
Marshall, Simon |
Subject: |
RE: Error in menu-bar-update-hook: (error Point before start of p rope rties) |
Date: |
Fri, 21 Jul 2006 17:43:09 +0100 |
> The anomaly here is in the original error. I am not sure
> whether that error ought to be possible at all.
>
> How about if you run with a breakpoint at the line in
> intervals.c which gets that error? When you get there, look
> at the value of POS.
> Then examine the existing buffer properties. You can do that
> at the C level, or continue into the Lisp debugger and do it there.
This time it happened while I was doing C-k C-k C-y C-y to copy a line.
(Though I guess the edit is irrelevant - the error is during a buffer-wide
imenu update.) The caller is update_syntax_table():
if (NULL_INTERVAL_P (i))
error ("Error in syntax_table logic for to-the-end intervals");
else if (charpos < i->position) /* Move left. */
{
if (count > 0)
error ("Error in syntax_table logic for intervals <-");
/* Update the interval. */
==> i = update_interval (i, charpos);
if (INTERVAL_LAST_POS (i) != gl_state.b_property)
{
invalidate = 0;
gl_state.forward_i = i;
gl_state.e_property = INTERVAL_LAST_POS (i) - gl_state.offset;
}
}
Here's some hopefully useful info from the stack:
(dbx) frame 1
Current function is update_interval
(dbx) print pos
pos = 30065
(dbx) print i
i = 0xb46710
(dbx) print *i
*i = {
total_length = 357181U
position = 144991U
(*i).left = 0x110ba4c
(*i).right = 0x1113f10
up = {
(*i).up.interval = 0x80f1e800
obj = -2131630080
}
up_obj = 1U
gcmarkbit = 0
write_protect = 0
visible = 0
front_sticky = 0
rear_sticky = 0
plist = 541931520
}
(dbx) print *i->left
*i->left = {
total_length = 145078U
position = 76520U
(*i->left).left = 0x10d5684
(*i->left).right = 0x10adb80
up = {
(*i->left).up.interval = 0xb46710
obj = 11822864
}
up_obj = 0
gcmarkbit = 0
write_protect = 0
visible = 0
front_sticky = 0
rear_sticky = 0
plist = 541931520
}
(dbx) print *i->right
*i->right = {
total_length = 212060U
position = 252468U
(*i->right).left = 0x10b00c4
(*i->right).right = 0x105348c
up = {
(*i->right).up.interval = 0xb46710
obj = 11822864
}
up_obj = 0
gcmarkbit = 0
write_protect = 0
visible = 0
front_sticky = 0
rear_sticky = 0
plist = 541931520
}
(dbx) frame 2
Current function is update_syntax_table
(dbx) print i
i = 0x10d5684
(dbx) print *i
*i = {
total_length = 76563U
position = 30107U
(*i).left = 0xfc0bb8
(*i).right = 0x113eed8
up = {
(*i).up.interval = 0x110ba4c
obj = 17873484
}
up_obj = 0
gcmarkbit = 0
write_protect = 0
visible = 0
front_sticky = 0
rear_sticky = 0
plist = 541931520
}
(dbx)
What should I look for re the buffer text properties? The buffer is full of
them - it's visiting a C++ file.
The full backtrace is:
(dbx) where
=>[1] update_interval(i = 0xb46710, pos = 30065), line 784 in "intervals.c"
[2] update_syntax_table(charpos = 30065, count = -1, init = 0, object =
541931520), line 179 in "syntax.c"
[3] re_match_2_internal(bufp = 0x4c1084, string1 = 0x1d8dcd0 "[...]" ...,
size2 = 344731, pos = 30064, regs = 0x4b5ce4, stop = 357181), line 5861 in
"regex.c"
[4] re_search_2(bufp = 0x4c1084, str1 = 0x1d8dcd0 "[...]" ..., size2 =
344731, startpos = 30064, range = -30064, regs = 0x4b5ce4, stop = 357181),
line 4383 in "regex.c"
[5] search_buffer(string = 1626133504, pos = 357182, pos_byte = 357182,
lim = 1, lim_byte = 1, n = -1, RE = 1, trt = 541931520, inverse_trt =
541931520, posix = 0), line 1109 in "search.c"
[6] search_command(string = 1626133504, bound = 541931520, noerror =
541931568, count = 541931520, direction = -1, RE = 1, posix = 0), line 947
in "search.c"
[7] Fre_search_backward(regexp = 1626133504, bound = 541931520, noerror =
541931568, count = 541931520), line 2192 in "search.c"
[8] Ffuncall(nargs = 4, args = 0xffbec660), line 2926 in "eval.c"
[9] Fbyte_code(bytestr = 1621738544, vector = -2137846272, maxdepth = 8),
line 679 in "bytecode.c"
[10] funcall_lambda(fun = -2136168768, nargs = 1, arg_vector =
0xffbec95c), line 3104 in "eval.c"
[11] Ffuncall(nargs = 2, args = 0xffbec958), line 2961 in "eval.c"
[12] Fbyte_code(bytestr = 1621738496, vector = -2137082880, maxdepth = 3),
line 679 in "bytecode.c"
[13] funcall_lambda(fun = -2136168352, nargs = 0, arg_vector =
0xffbecc44), line 3104 in "eval.c"
[14] Ffuncall(nargs = 1, args = 0xffbecc40), line 2961 in "eval.c"
[15] Fbyte_code(bytestr = 1621741376, vector = -2137082688, maxdepth = 2),
line 679 in "bytecode.c"
[16] funcall_lambda(fun = -2136167200, nargs = 1, arg_vector =
0xffbecf24), line 3104 in "eval.c"
[17] Ffuncall(nargs = 2, args = 0xffbecf20), line 2961 in "eval.c"
[18] Fbyte_code(bytestr = 1621739216, vector = -2136238208, maxdepth = 5),
line 679 in "bytecode.c"
[19] funcall_lambda(fun = -2136170304, nargs = 0, arg_vector =
0xffbed2bc), line 3104 in "eval.c"
[20] Ffuncall(nargs = 1, args = 0xffbed2b8), line 2961 in "eval.c"
[21] run_hook_with_args(nargs = 1, args = 0xffbed2b8, cond =
to_completion), line 2574 in "eval.c"
[22] Frun_hooks(nargs = 1, args = 0xffbed3ec), line 2437 in "eval.c"
[23] Ffuncall(nargs = 2, args = 0xffbed3e8), line 2896 in "eval.c"
[24] call1(fn = 542022568, arg1 = 542148848), line 2696 in "eval.c"
[25] safe_run_hooks_1(hook = 0), line 2037 in "keyboard.c"
[26] internal_condition_case(bfun = 0x1bea68 =
&`emacs`keyboard.c`safe_run_hooks_1(Lisp_Object hook), handlers = 541931568,
hfun = 0x1beab8 = &`emacs`keyboard.c`safe_run_hooks_error(Lisp_Object
data)), line 1473 in "eval.c"
[27] safe_run_hooks(hook = 542148848), line 2065 in "keyboard.c"
[28] update_menu_bar(f = 0x957a00, save_match_data = 0), line 9173 in
"xdisp.c"
[29] prepare_menu_bars(), line 9059 in "xdisp.c"
[30] redisplay_internal(preserve_echo_area = 0), line 10874 in "xdisp.c"
[31] redisplay(), line 10463 in "xdisp.c"
[32] read_char(commandflag = 1, nmaps = 3, maps = 0xffbedd40, prev_event =
541931520, used_mouse_menu = 0xffbeddc4), line 2550 in "keyboard.c"
[33] read_key_sequence(keybuf = 0xffbedf30, bufsize = 30, prompt =
541931520, dont_downcase_last = 0, can_return_switch_frame = 1,
fix_current_buffer = 1), line 8863 in "keyboard.c"
[34] command_loop_1(), line 1538 in "keyboard.c"
[35] internal_condition_case(bfun = 0x1bb738 = &command_loop_1(), handlers
= 541988464, hfun = 0x1badf0 = &cmd_error(Lisp_Object data)), line 1473 in
"eval.c"
[36] command_loop_2(), line 1328 in "keyboard.c"
[37] internal_catch(tag = 541989888, func = 0x1bb350 = &command_loop_2(),
arg = 541931520), line 1213 in "eval.c"
[38] command_loop(), line 1307 in "keyboard.c"
[39] recursive_edit_1(), line 1000 in "keyboard.c"
[40] Frecursive_edit(), line 1061 in "keyboard.c"
[41] main(argc = 1, argv = 0xffbee43c), line 1794 in "emacs.c"
(dbx)
- RE: Error in menu-bar-update-hook: (error Point before start of p rope rties),
Marshall, Simon <=