* bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten
@ 2016-04-28 22:05 Ken Raeburn
2016-05-02 16:47 ` Eli Zaretskii
0 siblings, 1 reply; 8+ messages in thread
From: Ken Raeburn @ 2016-04-28 22:05 UTC (permalink / raw
To: 23397
I'm running the emacs-25 branch as of revision a1f221b, but with commit
d82f24b reverted (attempting to debug #23013), and built with
MARKER_DEBUG enabled (as Eli pointed out, probably not relevant to
#23013) along with assertions.
I was using "git" to update a source tree while about twenty files from
it were loaded into Emacs buffers. Auto-revert was triggered; during the
process, Finsert_file_contents was loading a Perl file when it invoked
BYTE_TO_CHAR:
/* Don't try to reuse the same piece of text twice. */
overlap = (same_at_start - BEGV_BYTE
- (same_at_end
+ (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE));
if (overlap > 0)
same_at_end += overlap;
same_at_end_charpos = BYTE_TO_CHAR (same_at_end);
...with same_at_end well out of range (Z_BYTE=12451, same_at_end=24673).
The reverting appears to have happened while the file was in the process
of being updated, as st.st_size is zero.
The "end" argument is nil, so the conditional expression will use the
st_size value (zero). So with same_at_start=12223, BEGV_BYTE=1, and
ZV_BYTE=12451, the "overlap" value will be 24673 minus the (old) value
of same_at_end. If that difference doesn't go negative, we'll set
same_at_end to 24673, which is the value seen in the next frame down.
(The "overlap" variable isn't visible from gdb at this point.)
So in buf_bytepos_to_charpos, the initial range check assertion fails,
and Emacs dies.
I haven't managed to reproduce this so far.
Core was generated by `emacs --daemon'.
Program terminated with signal 6, Aborted.
#0 0x00007f6725308b7b in raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:42
42 ../nptl/sysdeps/unix/sysv/linux/pt-raise.c: No such file or directory.
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
DISPLAY = :0.0
TERM = dumb
Breakpoint 1 at 0x52d290: file ../../src/emacs.c, line 352.
Temporary breakpoint 2 at 0x54d950: file ../../src/sysdep.c, line 911.
(gdb) bt full
#0 0x00007f6725308b7b in raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:42
resultvar = 0
pid = <optimized out>
#1 0x000000000052d308 in terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../src/emacs.c:380
No locals.
#2 0x00000000005995e4 in die (msg=<optimized out>, file=<optimized out>, line=<optimized out>) at ../../src/alloc.c:7218
No locals.
#3 0x0000000000562b46 in buf_bytepos_to_charpos (b=0x3940870, bytepos=24673) at ../../src/marker.c:297
tail = <optimized out>
best_above = <optimized out>
best_above_byte = <optimized out>
best_below = <optimized out>
best_below_byte = <optimized out>
#4 0x000000000056c786 in Finsert_file_contents (filename=59999236, visit=<optimized out>, beg=0, end=0, replace=<optimized out>) at ../../src/fileio.c:3853
temp = <optimized out>
overlap = <optimized out>
giveup_match_end = false
st = {
st_dev = 2057,
st_ino = 5972083,
st_nlink = 1,
st_mode = 33188,
st_uid = 1065,
st_gid = 50,
__pad0 = 0,
st_rdev = 0,
st_size = 0,
st_blksize = 4096,
st_blocks = 8,
st_atim = {
tv_sec = 1461804924,
tv_nsec = 0
},
st_mtim = {
tv_sec = 1461804924,
tv_nsec = 0
},
st_ctim = {
tv_sec = 1461804924,
tv_nsec = 0
},
__unused = {0, 0, 0}
}
mtime = {
tv_sec = 1461804924,
tv_nsec = 0
}
fd = 20
inserted = 0
how_much = <optimized out>
beg_offset = 0
end_offset = <optimized out>
unprocessed = <optimized out>
handler = 0
val = <optimized out>
insval = <optimized out>
orig_filename = 59999236
old_undo = <optimized out>
p = <optimized out>
total = 0
not_regular = <optimized out>
save_errno = 0
read_buf = [text elided]...
coding = {
id = 1,
common_flags = 4096,
mode = 0,
src_multibyte = false,
dst_multibyte = false,
chars_at_source = false,
raw_destination = false,
annotated = true,
eol_seen = 3,
result = CODING_RESULT_SUCCESS,
max_charset_id = 0,
spec = {
iso_2022 = {
flags = 0,
current_invocation = {0, 59159552},
current_designation = {0, 0, 0, 16},
ctext_extended_segment_len = 0,
single_shifting = false,
bol = true,
embedded_utf_8 = false,
cmp_status = {
state = COMPOSING_NO,
method = 59159773,
old_form = false,
length = 117,
nchars = 0,
ncomps = 0,
carryover = {0, 137897158, 0, 0, 0, 53, 0, 0, 0, 1, 0, 59159720, 0, 13184, 0 <repeats 11 times>, 137897156, 0, 1, 0, 0, 1, 1633000192, 821086785, 13263192, 0, 0, 0, 0, 0, 13263192, 0, 47, 0, 47, 0, 0, 0, 5836564, 0, 0, 0, 53, 0, 13263096, 0, 0, 0, 1, 0, 0, 0, 13263128, 0, 0, 0, 53, 0, 15698672}
}
},
ccl = 0x0,
utf_16 = {
bom = utf_detect_bom,
endian = utf_16_big_endian,
surrogate = 59159552
},
utf_8_bom = utf_detect_bom,
emacs_mule = {
cmp_status = {
state = COMPOSING_NO,
method = COMPOSITION_RELATIVE,
old_form = false,
length = 0,
nchars = 0,
ncomps = 0,
carryover = {16, 0, 2, 0, 59159773, 0, 117, 0, 0, 0, 137897158, 0, 0, 0, 53, 0, 0, 0, 1, 0, 59159720, 0, 13184, 0 <repeats 11 times>, 137897156, 0, 1, 0, 0, 1, 1633000192, 821086785, 13263192, 0, 0, 0, 0, 0, 13263192, 0, 47, 0, 47, 0, 0, 0, 5836564, 0, 0, 0, 53, 0, 13263096, 0, 0, 0, 1, 0}
}
},
undecided = {
inhibit_nbd = 0,
inhibit_ied = 0,
prefer_utf_8 = false
}
},
safe_charsets = 0xcf1980 "",
head_ascii = 6017289,
detected_utf8_bytes = 53,
detected_utf8_chars = 140724539966056,
produced = 1,
produced_char = 6011538,
consumed = 13258416,
consumed_char = 6072415,
src_pos = 13263096,
src_pos_byte = 4,
src_chars = 22,
src_bytes = 140724539966056,
src_object = 0,
source = 0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>,
dst_pos = 59999236,
dst_pos_byte = 5840580,
dst_bytes = 53,
dst_object = 0,
destination = 0x35 <Address 0x35 out of bounds>,
charbuf = 0xffffffffffffffff,
charbuf_size = 59999236,
charbuf_used = 0,
carryover = "\000\000\000\000\000\000\000\000\004\204\223\003\000\000\000\000p\b\224\003\000\000\000\000\020\000\000\000\000\000\000\000\240\252", '\000' <repeats 14 times>"\372, \300[\000\000\000\000\000\240\252\000\000\000\000\000",
carryover_bytes = 0,
default_char = 0,
detector = 0,
decoder = 0x4ace70 <decode_coding_raw_text>,
encoder = 0x4bdac0 <encode_coding_raw_text>
}
replace_handled = false
set_coding_system = true
coding_system = 186272
read_quit = false
empty_undo_list_p = false
old_Vdeactivate_mark = 44448
we_locked_file = false
window_markers = <optimized out>
same_at_start = 12223
same_at_end = 24673
same_at_end_charpos = 12451
#5 0x00000000005bbd7c in Ffuncall (nargs=6, args=0x7ffcfc374398) at ../../src/eval.c:2709
internal_argbuf = {13730768, 0, 1, 4440414, 53, 5928744, 292928, 292928}
fun = <optimized out>
original_fun = <optimized out>
funcar = 0
numargs = 5
lisp_numargs = 6
val = <optimized out>
internal_args = 0x7ffcfc3743a0
count = 24
#6 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=6, maxdepth=6, args_template=0, nargs=2, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 22
stack = {
pc = 0xc184d9 ")\202y",
byte_string = 9710972,
byte_string_start = 0xc1846c "\306\002!\204\023",
next = 0x7ffcfc3745f0
}
result = 0
type = 2305
#7 0x00000000005bba72 in Ffuncall (nargs=3, args=0x7ffcfc374568) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 4554608
funcar = 0
numargs = 2
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 21
#8 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=3, maxdepth=6, args_template=0, nargs=2, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 19
stack = {
pc = 0xc1860b "\210\334\335\t!!\026$\336\330\211\321\330\016%%\210\337\340\003\"\210\211\203\263",
byte_string = 9710484,
byte_string_start = 0xc1857c "r\306p!\206\b",
next = 0x7ffcfc374790
}
result = 0
type = 2305
#9 0x00000000005bba72 in Ffuncall (nargs=3, args=0x7ffcfc374720) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 4554512
funcar = 0
numargs = 2
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 18
#10 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=3, maxdepth=6, args_template=0, nargs=3, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 16
stack = {
pc = 0xc1866d "*\207",
byte_string = 9710228,
byte_string_start = 0xc18661 "\303\001\030\031\n\206\t",
next = 0x7ffcfc374960
}
result = 0
type = 2305
#11 0x00000000005bba72 in Ffuncall (nargs=4, args=0x7ffcfc3748d0) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 3874224
funcar = 0
numargs = 3
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 15
#12 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=4, maxdepth=6, args_template=0, nargs=0, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 13
stack = {
pc = 0x35c8952 "\210)\t\203\274",
byte_string = 48010052,
byte_string_start = 0x35c88b8 "p\306\307\030\t\203?",
next = 0x7ffcfc374c30
}
result = 0
type = 2305
#13 0x00000000005bba72 in Ffuncall (nargs=1, args=0x7ffcfc374bc8) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 55760293
funcar = 0
numargs = 0
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 12
#14 0x00000000005bce84 in Fapply (nargs=2, args=<optimized out>) at ../../src/eval.c:2274
i = <optimized out>
numargs = <optimized out>
funcall_nargs = <optimized out>
funcall_args = 0x0
spread_arg = 0
fun = <optimized out>
retval = <optimized out>
sa_avail = 16384
sa_must_free = false
#15 0x00000000005bbf06 in Ffuncall (nargs=3, args=0x7ffcfc374bc0) at ../../src/eval.c:2673
fun = <optimized out>
original_fun = 9504
funcar = 0
numargs = 2
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 11
#16 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=3, maxdepth=6, args_template=0, nargs=0, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 11
stack = {
pc = 0x10b6553 "\207",
byte_string = 18033780,
byte_string_start = 0x10b6548 "\300\301\002\"\206\v",
next = 0x7ffcfc374df0
}
result = 0
type = 2305
#17 0x00000000005bba72 in Ffuncall (nargs=1, args=0x7ffcfc374d88) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 41483120
funcar = 0
numargs = 0
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 10
#18 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=1, maxdepth=6, args_template=0, nargs=91483, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 9
stack = {
pc = 0x35c87fb "\210\r\024\332\324\323\"\210)\001A\266\202\202r",
byte_string = 49284980,
byte_string_start = 0x35c8740 "\306\061\322",
next = 0x7ffcfc374ff0
}
result = 0
type = 2305
#19 0x00000000005bba72 in Ffuncall (nargs=2, args=0x7ffcfc374f70) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 41482928
funcar = 0
numargs = 1
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 8
#20 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=2, maxdepth=6, args_template=140724539969400, nargs=1, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 8
stack = {
pc = 0x35d4a38 "\210\004\204\262\001\211\334>\203\273\001\006\a;\203\250\001\335\006\b!\204\273\001\006\b\336\006\016!\230\203\273\001\337\332\006\r\005@\"!\210\001A\266\202\202\060",
byte_string = 50354644,
byte_string_start = 0x35d48a8 "\211@\302\001\b\"\002A@\303\004!\304\211\211\211\005:\204\032",
next = 0x7ffcfc375180
}
result = 0
type = 2305
#21 0x00000000005bba72 in Ffuncall (nargs=2, args=0x7ffcfc375110) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 41462528
funcar = 0
numargs = 1
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 7
#22 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=2, maxdepth=6, args_template=0, nargs=1, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 7
stack = {
pc = 0x35d4655 "\207\303\304\305\003B\"\207",
byte_string = 50369588,
byte_string_start = 0x35d4640 "\211@\300=\203\026",
next = 0x7ffcfc375680
}
result = 0
type = 2305
#23 0x00000000005bba72 in Ffuncall (nargs=2, args=0x7ffcfc375378) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 457984
funcar = 0
numargs = 1
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 6
#24 0x00000000005b7159 in Ffuncall_interactively (nargs=2, args=0x7ffcfc375378) at ../../src/callint.c:248
No locals.
#25 0x00000000005bbf06 in Ffuncall (nargs=3, args=0x7ffcfc375370) at ../../src/eval.c:2673
fun = <optimized out>
original_fun = 24000
funcar = 0
numargs = 2
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 4
#26 0x00000000005b87c4 in Fcall_interactively (function=140724539970416, record_flag=0, keys=140724539970464) at ../../src/callint.c:836
val = <optimized out>
args = 0x7ffcfc375370
visargs = 0xfff9f86ea710
specs = <optimized out>
filter_specs = <optimized out>
teml = <optimized out>
up_event = <optimized out>
sa_avail = <optimized out>
sa_must_free = false
next_event = <optimized out>
prefix_arg = 0
string = <optimized out>
tem = <optimized out>
varies = 0x17ff6f4a5fab0 <Address 0x17ff6f4a5fab0 out of bounds>
i = <optimized out>
nargs = 3
mark = <optimized out>
arg_from_tty = <optimized out>
key_count = 1
record_then_fail = false
save_this_command = 0
save_last_command = 4825984
save_this_original_command = 0
save_real_this_command = 0
#27 0x00000000005bbdfc in Ffuncall (nargs=4, args=0x7ffcfc3755f8) at ../../src/eval.c:2700
internal_argbuf = {457984, 0, 0, 4440414, 140724539971312, 5928744, 0, 140724539971312}
fun = <optimized out>
original_fun = <optimized out>
funcar = 0
numargs = 3
lisp_numargs = 6
val = <optimized out>
internal_args = 0x7ffcfc375600
count = 3
#28 0x00000000005fcaad in exec_byte_code (bytestr=2305, vector=4, maxdepth=6, args_template=0, nargs=4, args=0x400448) at ../../src/bytecode.c:880
targets = {0x5fc882, 0x5fd1e5, 0x5fd1ea, 0x5fd1ef, 0x5fd1f5, 0x5fc8e3, 0x5fcedf, 0x5fcf25, 0x5fced5, 0x5fceda, 0x5fcea6, 0x5fceab, 0x5fc924, 0x5fc928, 0x5fcc6f, 0x5fceb0, 0x5fce3a, 0x5fce3f, 0x5fcbe9, 0x5fcbee, 0x5fc9b5, 0x5fc9b8, 0x5fcc18, 0x5fcbf3, 0x5fcbba, 0x5fcbbf, 0x5fcbc4, 0x5fcbc9, 0x5fca49, 0x5fca50, 0x5fcc5b, 0x5fcb95, 0x5fcb80, 0x5fcb85, 0x5fcb8a, 0x5fdf7e, 0x5fca8f, 0x5fca90, 0x5fcbd5, 0x5fcb5b, 0x5fe45a, 0x5fe45f, 0x5fe464, 0x5fe430, 0x5fcad0, 0x5fcad0, 0x5fe3d6, 0x5fe435, 0x5fe291, 0x5fe287, 0x5fe1c7, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5ff150, 0x5ff0a2, 0x5ff0f9, 0x5fef22, 0x5fef79, 0x5fce44, 0x5fcd89, 0x5feff8, 0x5fcd18, 0x5fcdc9, 0x5ff062, 0x5feafc, 0x5ff335, 0x5ff2bb, 0x5ff2f8, 0x5ff28c, 0x5ff375, 0x5ff3b5, 0x5fe967, 0x5feef3, 0x5fee73, 0x5feeb3, 0x5fed72, 0x5fedb2, 0x5fedf9, 0x5fee36, 0x5feb2b, 0x5febb8, 0x5febf8, 0x5fec3c, 0x5fece8, 0x5feca3, 0x5fed2d, 0x5fd7b3, 0x5fd7f8, 0x5fd835, 0x5fd874, 0x5fd8b1, 0x5fd8ee, 0x5fd92b, 0x5fd9e5, 0x5fcb2d, 0x5fda46, 0x5fda75, 0x5fdaf3, 0x5fdb58, 0x5fdbb9, 0x5fdbe8, 0x5fdc19, 0x5fdc4a, 0x5fdca2, 0x5fc882, 0x5fdcf2, 0x5fdd27, 0x5fdd5c, 0x5fdd91, 0x5fddc6, 0x5fddfb, 0x5fcb2d, 0x5fc882, 0x5fde2a, 0x5fde71, 0x5fdea0, 0x5fdecf, 0x5fdf0f, 0x5fdf4f, 0x5fd423, 0x5fd470, 0x5fd691, 0x5fd6d1, 0x5fd65c, 0x5fd784, 0x5fc882, 0x5fe100, 0x5fe469, 0x5fcc83, 0x5fe52c, 0x5fe7db, 0x5fe86d, 0x5fe091, 0x5fe0df, 0x5fcc2c, 0x5fdf83, 0x5fd0a4, 0x5fe154, 0x5fe182, 0x5fe2bf, 0x5fe32c, 0x5fe373, 0x5fe760, 0x5fe3ea, 0x5fd711, 0x5fd755, 0x5fd4b0, 0x5fd4df, 0x5fd50e, 0x5fd53d, 0x5fd57d, 0x5fd5bd, 0x5fd5fd, 0x5fd63d, 0x5fd205, 0x5fd245, 0x5fd285, 0x5fd2b4, 0x5fd2f4, 0x5fd334, 0x5fd38d, 0x5fd3e6, 0x5fd968, 0x5fd9a5, 0x5fd126, 0x5fd18e, 0x5fc882, 0x5fe62a, 0x5fe6da, 0x5fe996, 0x5fea77, 0x5fdfb1, 0x5ff23c, 0x5feb68, 0x5fdaa6, 0x5fcf81, 0x5fcfc6, 0x5fc882, 0x5fc882, 0x5fd01e, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fc882, 0x5fd069 <repeats 64 times>}
count = 3
stack = {
pc = 0xbf57b7 "\006\006\071\203\242",
byte_string = 10150908,
byte_string_start = 0xbf573c "\306\020\211?\205\023",
next = 0x0
}
result = 0
type = 2305
#29 0x00000000005bba72 in Ffuncall (nargs=5, args=0x7ffcfc375790) at ../../src/eval.c:2754
fun = <optimized out>
original_fun = 14784
funcar = 0
numargs = 4
lisp_numargs = 6
val = <optimized out>
internal_args = <optimized out>
count = 2
#30 0x00000000005bc079 in call4 (fn=<optimized out>, arg1=<optimized out>, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at ../../src/eval.c:2577
No locals.
#31 0x000000000053b1b2 in read_char (commandflag=1, map=127403475, prev_event=0, used_mouse_menu=0x7ffcfc375ebf, end_time=0x0) at ../../src/keyboard.c:2835
prev_buffer = 0x31cac30
c = 130132563
local_getcjmp = {{
__jmpbuf = {0, 369207272891589228, 52210736, 4611686018477719552, 13599328, 1, -367526741044780436, 369207937242997356},
__mask_was_saved = 0,
__saved_mask = {
__val = {0 <repeats 16 times>}
}
}}
save_jump = {{
__jmpbuf = {0, 369209120862741100, 117521837, 5, 0, 1, -367526741044780436, 369207937242997356},
__mask_was_saved = 0,
__saved_mask = {
__val = {97323811, 0, 0, 97323827, 97323824, 0, 4611686018595160064, 4611686019484352512, 6072415, 41400304, 6073252, 166272, 0, 4611686018595160064, 97323827, 1}
}
}}
tem = 457984
save = <optimized out>
previous_echo_area_message = 0
also_record = 0
reread = false
recorded = false
polling_stopped_here = false
orig_kboard = 0xcf8260
#32 0x000000000053f96e in read_key_sequence (keybuf=0x7ffcfc375f20, prompt=0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=<optimized out>, bufsize=30) at ../../src/keyboard.c:9055
interrupted_kboard = <optimized out>
interrupted_frame = 0xcfca00
key = <optimized out>
used_mouse_menu = false
echo_local_start = 0
last_real_key_start = 0
keys_local_start = 0
new_binding = <optimized out>
t = 0
echo_start = 0
keys_start = 0
current_binding = 127403475
first_event = 0
first_unbound = 31
mock_input = 0
fkey = {
parent = 13805859,
map = 13805859,
start = 0,
end = 0
}
keytran = {
parent = 13535811,
map = 13535811,
start = 0,
end = 0
}
indec = {
parent = 13805875,
map = 13805875,
start = 0,
end = 0
}
shift_translated = false
delayed_switch_frame = 0
original_uppercase = 5930301
original_uppercase_position = -1
dummyflag = <optimized out>
starting_buffer = 0x31cac30
fake_prefixed_keys = 0
#33 0x0000000000541334 in command_loop_1 () at ../../src/keyboard.c:1357
cmd = <optimized out>
keybuf = {98, 14, 246, 18, 4294967296, 3526540890385783552, 0, 5925508, 0, 28416, 0, 112171987, 140724539973632, 0, 0, 45840, 13437840, 6013092, 157136, 112171987, 9257796, 0, 140724539973632, 5451033, 0, 112171987, 0, 5451319, 0, 6006135}
i = <optimized out>
prev_modiff = 117
prev_buffer = 0x4bab8e0
#34 0x00000000005b9eba in internal_condition_case (bfun=0x541120 <command_loop_1>, handlers=<optimized out>, hfun=0x532d50 <cmd_error>) at ../../src/eval.c:1309
val = <optimized out>
c = 0x8c9
#35 0x0000000000530fac in command_loop_2 (ignore=<optimized out>) at ../../src/keyboard.c:1099
val = 0
#36 0x00000000005b9f48 in internal_catch (tag=<optimized out>, func=0x530f90 <command_loop_2>, arg=0) at ../../src/eval.c:1074
val = 0
c = 0x8c9
#37 0x0000000000530ee2 in command_loop () at ../../src/keyboard.c:1078
No locals.
#38 0x0000000000532846 in recursive_edit_1 () at ../../src/keyboard.c:684
val = <optimized out>
#39 0x0000000000532ba5 in Frecursive_edit () at ../../src/keyboard.c:755
buffer = <optimized out>
#40 0x0000000000413a68 in main (argc=<optimized out>, argv=<optimized out>) at ../../src/emacs.c:1605
dummy = 140081048168216
stack_bottom_variable = 0 '\000'
do_initial_setlocale = <optimized out>
dumping = <optimized out>
skip_args = 1
rlim = {
rlim_cur = 8720000,
rlim_max = 18446744073709551615
}
no_loadup = false
junk = 0x0
dname_arg = 0x0
ch_to_dir = 0x0
original_pwd = 0x2 <Address 0x2 out of bounds>
You can't do that without a process to debug.
(gdb) source ~/xbt.gdb
(gdb) xbt
"insert-file-contents" (0xfc3743a0)
"revert-buffer-insert-file-contents--default-function" (0xfc374570)
"revert-buffer--default" (0xfc374728)
"revert-buffer" (0xfc3748d8)
0x352d5a0 PVEC_COMPILED
"apply" (0xfc374bc8)
"auto-revert-handler" (0xfc374d90)
"auto-revert-notify-handler" (0xfc374f78)
"file-notify-callback" (0xfc375118)
"file-notify-handle-event" (0xfc375380)
"funcall-interactively" (0xfc375378)
"call-interactively" (0xfc375600)
"command-execute" (0xfc375798)
(gdb) p current_buffer
$1 = (struct buffer *) 0x3940870
(gdb) p *current_buffer
$2 = {
header = {
size = 4611686018528256071
},
name_ = 60031812,
filename_ = 59999236,
directory_ = 60034580,
backed_up_ = 0,
save_length_ = 49802,
auto_save_file_name_ = 60034804,
read_only_ = 0,
mark_ = 60032025,
local_var_alist_ = 154793331,
major_mode_ = 4621376,
mode_name_ = 14815124,
mode_line_format_ = 17496099,
header_line_format_ = 48621651,
keymap_ = 17934947,
abbrev_table_ = 53010869,
syntax_table_ = 20669221,
category_table_ = 13559829,
case_fold_search_ = 44448,
tab_width_ = 34,
fill_column_ = 282,
left_margin_ = 2,
auto_fill_function_ = 0,
downcase_table_ = 13561197,
upcase_table_ = 13565413,
case_canon_table_ = 19090613,
case_eqv_table_ = 19753381,
truncate_lines_ = 0,
word_wrap_ = 0,
ctl_arrow_ = 44448,
bidi_display_reordering_ = 44448,
bidi_paragraph_direction_ = 30480,
selective_display_ = 0,
selective_display_ellipses_ = 44448,
minor_modes_ = 0,
overwrite_mode_ = 0,
abbrev_mode_ = 0,
display_table_ = 0,
mark_active_ = 0,
enable_multibyte_characters_ = 44448,
buffer_file_coding_system_ = 0,
file_format_ = 0,
auto_save_file_format_ = 44448,
cache_long_scans_ = 44448,
width_table_ = 0,
pt_marker_ = 0,
begv_marker_ = 0,
zv_marker_ = 0,
point_before_scroll_ = 0,
file_truename_ = 142613924,
invisibility_spec_ = 60262899,
last_selected_window_ = 0,
display_count_ = 30,
left_margin_cols_ = 2,
right_margin_cols_ = 2,
left_fringe_width_ = 0,
right_fringe_width_ = 0,
fringes_outside_margins_ = 0,
scroll_bar_width_ = 0,
scroll_bar_height_ = 0,
vertical_scroll_bar_type_ = 44448,
horizontal_scroll_bar_type_ = 44448,
indicate_empty_lines_ = 44448,
indicate_buffer_boundaries_ = 0,
fringe_indicator_alist_ = 21556691,
fringe_cursor_alist_ = 18337955,
display_time_ = 128283843,
scroll_up_aggressively_ = 0,
scroll_down_aggressively_ = 0,
cursor_type_ = 44448,
extra_line_spacing_ = 0,
cursor_in_non_selected_windows_ = 44448,
own_text = {
beg = 0x584cd90 "##\n# Perl object that represents an optofs filesystem\n#\n# $Id$\n##\npackage Permabit::FileSystem::Optofs;\n\nuse strict;\nuse warnings FATAL => qw(all);\nuse English qw(-no_match_vars);\n\nuse Carp qw(confess"...,
gpt = 12223,
z = 12451,
gpt_byte = 12223,
z_byte = 12451,
gap_size = 1245,
modiff = 44191,
chars_modiff = 44187,
save_modiff = 44191,
overlay_modiff = 3961,
compact = 44191,
beg_unchanged = 229,
end_unchanged = 0,
unchanged_modified = 44168,
overlay_unchanged_modified = 2746,
intervals = 0x7dd8ab0,
markers = 0x67d2e58,
inhibit_shrinking = false,
redisplay = false
},
text = 0x3940ab0,
next = 0x391e2f0,
pt = 12222,
pt_byte = 12222,
begv = 1,
begv_byte = 1,
zv = 12451,
zv_byte = 12451,
base_buffer = 0x0,
indirections = 0,
window_count = 0,
local_flags = '\000' <repeats 14 times>, "\001\000\001\000\000\000\001", '\000' <repeats 16 times>, "\001", '\000' <repeats 11 times>,
modtime = {
tv_sec = 1461804890,
tv_nsec = 0
},
modtime_size = 12450,
auto_save_modified = 44190,
display_error_modiff = 0,
auto_save_failure_time = 0,
last_window_start = 12052,
newline_cache = 0x39447b0,
width_run_cache = 0x0,
bidi_paragraph_cache = 0x0,
prevent_redisplay_optimizations_p = true,
clip_changed = true,
overlays_before = 0x7b71510,
overlays_after = 0x925da10,
overlay_center = 12282,
undo_list_ = 170189555
}
(gdb) p $2.name_
$3 = 60031812
(gdb) xtype
Lisp_String
(gdb) xstring
$4 = (struct Lisp_String *) 0x3940340
"Optofs.pm"
(gdb) fr 3
#3 0x0000000000562b46 in buf_bytepos_to_charpos (b=0x3940870, bytepos=24673) at ../../src/marker.c:297
warning: Source file is more recent than executable.
297 eassert (BUF_BEG_BYTE (b) <= bytepos && bytepos <= BUF_Z_BYTE (b));
(gdb) list
292 {
293 struct Lisp_Marker *tail;
294 ptrdiff_t best_above, best_above_byte;
295 ptrdiff_t best_below, best_below_byte;
296
297 eassert (BUF_BEG_BYTE (b) <= bytepos && bytepos <= BUF_Z_BYTE (b));
298
299 best_above = BUF_Z (b);
300 best_above_byte = BUF_Z_BYTE (b);
301
(gdb) up
#4 0x000000000056c786 in Finsert_file_contents (filename=59999236, visit=<optimized out>, beg=0, end=0, replace=<optimized out>) at ../../src/fileio.c:3853
warning: Source file is more recent than executable.
3853 same_at_end_charpos = BYTE_TO_CHAR (same_at_end);
(gdb) list
3848 overlap = (same_at_start - BEGV_BYTE
3849 - (same_at_end
3850 + (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE));
3851 if (overlap > 0)
3852 same_at_end += overlap;
3853 same_at_end_charpos = BYTE_TO_CHAR (same_at_end);
3854
3855 /* Arrange to read only the nonmatching middle part of the file. */
3856 beg_offset += same_at_start - BEGV_BYTE;
3857 end_offset -= ZV_BYTE - same_at_end;
(gdb) up
#5 0x00000000005bbd7c in Ffuncall (nargs=6, args=0x7ffcfc374398) at ../../src/eval.c:2709
2709 val = (XSUBR (fun)->function.a5
(gdb) list
2704 val = (XSUBR (fun)->function.a4
2705 (internal_args[0], internal_args[1], internal_args[2],
2706 internal_args[3]));
2707 break;
2708 case 5:
2709 val = (XSUBR (fun)->function.a5
2710 (internal_args[0], internal_args[1], internal_args[2],
2711 internal_args[3], internal_args[4]));
2712 break;
2713 case 6:
(gdb) p internal_args[0]
$5 = 59999236
(gdb) xtype
Lisp_String
(gdb) xstring
$6 = (struct Lisp_String *) 0x3938400
"/u1/ken/rh/src/perl/lib/Permabit/FileSystem/Optofs.pm"
(gdb) p internal_args[1]
$7 = 44448
(gdb) xtype
Lisp_Symbol
(gdb) xsymbol
$8 = (struct Lisp_Symbol *) 0xcdb930
"t"
(gdb) p internal_args[2]
$9 = 0
(gdb) xtype
Lisp_Symbol
(gdb) xsymbol
$10 = (struct Lisp_Symbol *) 0xcd0b90
"nil"
(gdb) p internal_args[3]
$11 = 0
(gdb) p internal_args[4]
$12 = 44448
(gdb)
In GNU Emacs 25.0.92.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2016-04-08 built on just-testing.permabit.com
Repository revision: 5725167b6826e2b3892297367368c50468cea83e
Windowing system distributor 'The X.Org Foundation', version 11.0.11103000
System Description: Ubuntu 12.04.5 LTS
Configured using:
'configure
--prefix=/permabit/user/raeburn/dev/emacs/emacs-25/lx/Inst-5725167
--with-x-toolkit=lucid --enable-checking CPPFLAGS=-DMARKER_DEBUG
--without-sound'
Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK DBUS GSETTINGS NOTIFY ACL
LIBSELINUX GNUTLS LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS LUCID
X11
Important settings:
locale-coding-system: nil
Major mode: Lisp Interaction
Minor modes in effect:
shell-dirtrack-mode: t
rcirc-track-minor-mode: t
diff-auto-refine-mode: t
display-time-mode: t
global-hi-lock-mode: t
hi-lock-mode: t
icomplete-mode: t
desktop-save-mode: t
global-edit-server-edit-mode: t
jabber-activity-mode: t
which-function-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
Mark saved where search started
Mark set
Mark saved where search started
Mark set
jwiele@chat.permabit.com is now Away
Mark saved where search started
Quit
Mark saved where search started
Mark set
jwiele@chat.permabit.com is now Online
Load-path shadows:
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-muc-nick-completion hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-muc-nick-completion
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-modeline hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-modeline
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-screen hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-screen
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-socks5 hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-socks5
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-muc hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-muc
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-chatbuffer hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-chatbuffer
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-events hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-events
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-chatstates hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-chatstates
/permabit/user/raeburn/.emacs.d/elpa/fsm-0.2/fsm hides /usr/share/emacs/site-lisp/emacs-jabber/fsm
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-widget hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-widget
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-si-client hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-si-client
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-sasl hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-sasl
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-ratpoison hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-ratpoison
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-time hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-time
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-logon hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-logon
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-browse hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-browse
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-ahc-presence hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-ahc-presence
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-roster hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-roster
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/srv hides /usr/share/emacs/site-lisp/emacs-jabber/srv
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-ft-client hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-ft-client
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-compose hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-compose
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-search hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-search
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-feature-neg hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-feature-neg
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-sawfish hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-sawfish
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-vcard hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-vcard
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-ft-server hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-ft-server
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-activity hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-activity
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-export hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-export
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-conn hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-conn
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-xml hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-xml
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber hides /usr/share/emacs/site-lisp/emacs-jabber/jabber
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-util hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-util
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-festival hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-festival
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-xmessage hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-xmessage
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-iq hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-iq
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-autoloads hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-autoloads
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-vcard-avatars hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-vcard-avatars
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-ft-common hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-ft-common
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-menu hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-menu
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-awesome hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-awesome
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-si-server hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-si-server
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-bookmarks hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-bookmarks
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-wmii hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-wmii
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-core hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-core
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-version hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-version
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-ourversion hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-ourversion
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-autoaway hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-autoaway
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-keymap hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-keymap
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-register hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-register
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-avatar hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-avatar
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-presence hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-presence
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-gmail hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-gmail
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-osd hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-osd
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-alert hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-alert
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-disco hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-disco
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-chat hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-chat
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-si-common hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-si-common
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-history hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-history
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-keepalive hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-keepalive
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-truncate hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-truncate
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-ahc hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-ahc
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-private hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-private
/permabit/user/raeburn/.emacs.d/elpa/jabber-20160124.552/jabber-watch hides /usr/share/emacs/site-lisp/emacs-jabber/jabber-watch
~/permabit-emacs/kr-pdoc hides /permabit/user/raeburn/elisp/kr-pdoc
/permabit/user/raeburn/.emacs.d/elpa/systemtap-mode-20151122.1140/systemtap-mode hides /permabit/user/raeburn/elisp/systemtap-mode
/permabit/user/raeburn/.emacs.d/elpa/ssh-20120904.1342/ssh hides /permabit/user/raeburn/elisp/ssh
/permabit/user/raeburn/.emacs.d/elpa/hideshowvis-20130824.500/hideshowvis hides /permabit/user/raeburn/elisp/hideshowvis
/permabit/user/raeburn/.emacs.d/elpa/lua-mode-20151025.530/lua-mode hides /permabit/user/raeburn/elisp/lua-mode
/permabit/user/raeburn/.emacs.d/elpa/edit-server-20141231.1358/edit-server hides /permabit/user/raeburn/elisp/edit-server
~/permabit-emacs/c-fns hides /permabit/user/raeburn/elisp/c-fns
/permabit/user/raeburn/elisp/objdump/loaddefs hides /permabit/user/raeburn/dev/emacs/emacs-25/lx/Inst-5725167/share/emacs/25.0.92/lisp/loaddefs
Features:
(shadow sort mail-extr gnus-msg emacsbug sendmail compare-w grep gud
add-log misearch multi-isearch pcmpl-unix jabber-rtt goto-addr
jabber-keepalive jabber-ping sasl-digest hmac-md5 hex-util server
make-mode nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid
rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn
nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc
xmltok systemtap-mode cc-awk sh-script smie executable objdump python
tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize shell
warnings json map smerge-mode org-element org-rmail org-mhe org-irc
org-info org-gnus org-docview doc-view subr-x jka-compr image-mode
org-bibtex bibtex org-bbdb org-w3m org org-macro org-footnote
org-pcomplete pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs find-func cal-menu calendar cal-loaddefs face-remap
autorevert filenotify rcirc vc vc-dispatcher vc-git diff-mode hideshow
time hi-lock icomplete kr-stuff smart-quotes easy-mmode kr-hesiod
hideshowvis desktop frameset browse-url edit-server kr-gnus gnus-demon
nntp gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source
utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rfc822
mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
gnus-ems nnheader mail-utils iso-transl kr-dbus kr-math cc-mode cc-fonts
cc-guess cc-menus cc-cmds jabber jabber-notifications notifications
jabber-libnotify dbus jabber-awesome jabber-osd jabber-wmii
jabber-xmessage jabber-festival jabber-sawfish jabber-ratpoison
jabber-tmux jabber-screen jabber-socks5 jabber-ft-server
jabber-si-server jabber-ft-client jabber-ft-common jabber-si-client
jabber-si-common jabber-feature-neg jabber-truncate jabber-time
jabber-autoaway jabber-vcard-avatars jabber-chatstates jabber-events
jabber-vcard jabber-avatar mailcap jabber-activity jabber-watch
jabber-modeline jabber-ahc-presence jabber-ahc jabber-version
jabber-ourversion jabber-muc-nick-completion hippie-exp jabber-browse
jabber-search jabber-register jabber-roster format-spec jabber-presence
jabber-muc jabber-bookmarks jabber-private jabber-muc-nick-coloring
hexrgb jabber-widget jabber-disco wid-edit jabber-chat jabber-history
jabber-chatbuffer jabber-alert jabber-iq jabber-core jabber-console
sgml-mode ewoc jabber-keymap jabber-sasl sasl sasl-anonymous sasl-login
sasl-plain fsm jabber-logon jabber-conn srv dns starttls tls gnutls
jabber-xml xml jabber-menu jabber-util auth-source cl-seq eieio
eieio-core cl-macs gnus-util time-date mm-util help-fns mail-prsvr
password-cache kr-autoloads finder-inf ssh-autoloads info package
epg-config seq byte-opt bytecomp byte-compile cl-extra help-mode cconv
idutils derived thingatpt compile comint ansi-color ring cperl-mode
easymenu which-func imenu cc-styles cc-align cc-engine cc-vars p4 dired
kr-message-timestamp advice c-eldoc cl gv cc-defs cl-loaddefs pcase
cl-lib timeclock disp-table mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese charscript
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote dbusbind inotify
dynamic-setting system-font-setting font-render-setting x-toolkit x
multi-tty make-network-process emacs)
Memory information:
((conses 16 927246 106539)
(symbols 48 53126 0)
(miscs 40 64903 4492)
(strings 32 133729 22635)
(string-bytes 1 4387654)
(vectors 16 75312)
(vector-slots 8 1314060 22701)
(floats 8 741 848)
(intervals 56 36488 1898)
(buffers 976 205)
(heap 1024 72030 2567))
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten
2016-04-28 22:05 bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten Ken Raeburn
@ 2016-05-02 16:47 ` Eli Zaretskii
2016-05-02 20:43 ` Ken Raeburn
0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2016-05-02 16:47 UTC (permalink / raw
To: Ken Raeburn; +Cc: 23397
> From: Ken Raeburn <raeburn@permabit.com>
> Date: Thu, 28 Apr 2016 18:05:29 -0400
>
> I'm running the emacs-25 branch as of revision a1f221b, but with commit
> d82f24b reverted (attempting to debug #23013), and built with
> MARKER_DEBUG enabled (as Eli pointed out, probably not relevant to
> #23013) along with assertions.
>
> I was using "git" to update a source tree while about twenty files from
> it were loaded into Emacs buffers. Auto-revert was triggered; during the
> process, Finsert_file_contents was loading a Perl file when it invoked
> BYTE_TO_CHAR:
>
> /* Don't try to reuse the same piece of text twice. */
> overlap = (same_at_start - BEGV_BYTE
> - (same_at_end
> + (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE));
> if (overlap > 0)
> same_at_end += overlap;
> same_at_end_charpos = BYTE_TO_CHAR (same_at_end);
>
> ...with same_at_end well out of range (Z_BYTE=12451, same_at_end=24673).
> The reverting appears to have happened while the file was in the process
> of being updated, as st.st_size is zero.
So you are saying that the file's contents was updated between the
time we called 'fstat' at the beginning of the function and the time
we used st.st_size in the above snippet?
If so, perhaps we should call 'fstat' again each time we want to use
st.st_size, and retry from the beginning if we find a mismatch?
> I haven't managed to reproduce this so far.
You could artificially modify the value of st.st_size in the debugger,
and then see what happens.
Thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten
2016-05-02 16:47 ` Eli Zaretskii
@ 2016-05-02 20:43 ` Ken Raeburn
2016-05-03 15:15 ` Eli Zaretskii
2018-06-16 21:45 ` Noam Postavsky
0 siblings, 2 replies; 8+ messages in thread
From: Ken Raeburn @ 2016-05-02 20:43 UTC (permalink / raw
To: Eli Zaretskii; +Cc: 23397
Eli Zaretskii <eliz@gnu.org> writes:
> So you are saying that the file's contents was updated between the
> time we called 'fstat' at the beginning of the function and the time
> we used st.st_size in the above snippet?
That's my guess. Or, more specifically, between the fstat and attempting
to go ahead and read data anyway.
But I did a few experiments with truncating the file and using a
breakpoint after the fstat to stall Emacs while I restored the file (so
the size appeared to be zero but all the data was readable), and nothing
interesting happened. That part of the function seems to be trying to
figure out if some of the beginning and end of the file are unchanged
from before, so I think maybe it also requires having some part in the
middle changed, or one version of the file being shorter than the other.
I'll run a few more experiments today to see.
> If so, perhaps we should call 'fstat' again each time we want to use
> st.st_size, and retry from the beginning if we find a mismatch?
If the file is large, and being frequently updated in small increments,
that could delay us considerably, as we restart the process multiple
times. (Some of the files I use auto-revert mode on are log files in the
tens of megabytes. Last I tried, auto-revert-tail-mode didn't cope
nicely with the case where the file got truncated and rewritten, so
reverting the whole file seems to be the way to go for now.) And if we
put a limit on the number of iterations, the last time around we'll
still need to get it right.
There's code there doing lseek and read calls; we should be able to keep
track of the last file position we read from, if that's not already
derivable from existing variables visible at that point.
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten
2016-05-02 20:43 ` Ken Raeburn
@ 2016-05-03 15:15 ` Eli Zaretskii
2016-05-03 21:04 ` Ken Raeburn
2018-06-16 21:45 ` Noam Postavsky
1 sibling, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2016-05-03 15:15 UTC (permalink / raw
To: Ken Raeburn; +Cc: 23397
> From: Ken Raeburn <raeburn@permabit.com>
> Cc: 23397@debbugs.gnu.org
> Date: Mon, 02 May 2016 16:43:12 -0400
>
> > If so, perhaps we should call 'fstat' again each time we want to use
> > st.st_size, and retry from the beginning if we find a mismatch?
>
> If the file is large, and being frequently updated in small increments,
> that could delay us considerably, as we restart the process multiple
> times.
That is still better than aborting, right?
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten
2016-05-03 15:15 ` Eli Zaretskii
@ 2016-05-03 21:04 ` Ken Raeburn
0 siblings, 0 replies; 8+ messages in thread
From: Ken Raeburn @ 2016-05-03 21:04 UTC (permalink / raw
To: Eli Zaretskii; +Cc: 23397
Eli Zaretskii <eliz@gnu.org> writes:
> That is still better than aborting, right?
Of course. But it seems to me we should have the information we need to
keep the Emacs processing self-consistent whether we iterate or not.
Other code in the function already clearly expects that the number of
bytes we can read may be different from st_size.
(Arguably, in case we're trying to preserve point or markers in a later
part of the file than might have been rewritten so far, it might be
desirable for insert-file-contents to restart or pause briefly and retry
reading more content if it detects a change, but I think that's mostly a
separate question.)
I've finally reproduced the problem. A key issue was that the whole
block containing the failing code would be skipped by the conditional
below if the coding system were "undecided", which seems to be the norm
in my testing with "emacs -Q", but not in my working environment for
whatever reason; maybe one of the minor modes I've loaded is setting a
more specific coding system.
if (!NILP (replace)
&& BEGV < ZV
&& (NILP (coding_system)
|| ! CODING_REQUIRE_DECODING (&coding)))
If the coding system is "undecided-unix", we enter this block, and I can
get it to blow up.
Recipe:
Get two similar files differing in the middle; I started with emacs-25
charset.h:
cp .../src/charset.h file.h
sed -e 400,499s/a/b/g < file.h > file2.h
Set a breakpoint just after the fstat call in Finsert_file_contents,
run emacs -Q, and read in file.h (continuing whenever the breakpoint is
hit). Turn on auto-revert-mode in the buffer.
Set the coding system with "C-x RET f" to "undecided-unix". That marks
the buffer as modified, so clear that by saving the file.
Copy file2.h over file.h, and when the breakpoint is triggered, change
st.st_size to zero, to simulate rereading before the file overwriting
has finished, and continue. My debugging printfs show that an
out-of-range same_at_end is generated as in my original case:
(gdb) c
Continuing.
Finsert_file_contents:3871: same_at_start=13993 same_at_end=17747
st_size=0 ZV=19498
=> overlap=15743
=> new same_at_end=33490
../../src/marker.c:297: Emacs fatal error: assertion failed: BUF_BEG_BYTE (b) <= bytepos && bytepos <= BUF_Z_BYTE (b)
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten
2016-05-02 20:43 ` Ken Raeburn
2016-05-03 15:15 ` Eli Zaretskii
@ 2018-06-16 21:45 ` Noam Postavsky
2018-06-17 5:36 ` Eli Zaretskii
2020-09-05 14:03 ` Lars Ingebrigtsen
1 sibling, 2 replies; 8+ messages in thread
From: Noam Postavsky @ 2018-06-16 21:45 UTC (permalink / raw
To: Ken Raeburn; +Cc: 23397
found 23397 26.1
tags 23397 + confirmed
quit
Ken Raeburn <raeburn@permabit.com> writes:
> There's code there doing lseek and read calls; we should be able to keep
> track of the last file position we read from, if that's not already
> derivable from existing variables visible at that point.
This seems to fix the scenario you gave in #17. I don't quite
understand what the overlap expression is trying to compute though.
--- i/src/fileio.c
+++ w/src/fileio.c
@@ -3849,6 +3849,8 @@ because (1) it preserves some marker positions and (2) it puts less data
goto handled;
}
+ off_t file_end_pos = st.st_size;
+
/* Count how many chars at the end of the file
match the text at the end of the buffer. But, if we have
already found that decoding is necessary, don't waste time. */
@@ -3879,6 +3881,8 @@ because (1) it preserves some marker positions and (2) it puts less data
total_read += nread;
}
+ file_end_pos = max (curpos - trial + total_read, file_end_pos);
+
/* Scan this bufferful from the end, comparing with
the Emacs buffer. */
bufpos = total_read;
@@ -3931,7 +3935,7 @@ because (1) it preserves some marker positions and (2) it puts less data
/* Don't try to reuse the same piece of text twice. */
overlap = (same_at_start - BEGV_BYTE
- (same_at_end
- + (! NILP (end) ? end_offset : st.st_size) - ZV_BYTE));
+ + (! NILP (end) ? end_offset : file_end_pos) - ZV_BYTE));
if (overlap > 0)
same_at_end += overlap;
same_at_end_charpos = BYTE_TO_CHAR (same_at_end);
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten
2018-06-16 21:45 ` Noam Postavsky
@ 2018-06-17 5:36 ` Eli Zaretskii
2020-09-05 14:03 ` Lars Ingebrigtsen
1 sibling, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2018-06-17 5:36 UTC (permalink / raw
To: Noam Postavsky; +Cc: raeburn, 23397
> From: Noam Postavsky <npostavs@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, 23397@debbugs.gnu.org
> Date: Sat, 16 Jun 2018 17:45:36 -0400
>
> I don't quite understand what the overlap expression is trying to
> compute though.
It prevents us from re-using the same portion of buffer text for
matching both at start and at end of the file. This could happen,
e.g., with buffers whose contents is the same character, and a file
whose contents is mostly the same, but larger, and with a few
different characters in the middle. Then the "same_at_end" loop could
inadvertently match a part of the buffer that was already matched by
the "same_at_start" loop.
The overlap expression computes the portion of the buffer that was
matched by both "same_at_start" and "same_at_end" loops.
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten
2018-06-16 21:45 ` Noam Postavsky
2018-06-17 5:36 ` Eli Zaretskii
@ 2020-09-05 14:03 ` Lars Ingebrigtsen
1 sibling, 0 replies; 8+ messages in thread
From: Lars Ingebrigtsen @ 2020-09-05 14:03 UTC (permalink / raw
To: Noam Postavsky; +Cc: Ken Raeburn, 23397
Noam Postavsky <npostavs@gmail.com> writes:
> This seems to fix the scenario you gave in #17. I don't quite
> understand what the overlap expression is trying to compute though.
[...]
> + off_t file_end_pos = st.st_size;
[etc]
Eli Zaretskii <eliz@gnu.org> writes:
>> I don't quite understand what the overlap expression is trying to
>> compute though.
>
> It prevents us from re-using the same portion of buffer text for
> matching both at start and at end of the file. This could happen,
> e.g., with buffers whose contents is the same character, and a file
> whose contents is mostly the same, but larger, and with a few
> different characters in the middle. Then the "same_at_end" loop could
> inadvertently match a part of the buffer that was already matched by
> the "same_at_start" loop.
>
> The overlap expression computes the portion of the buffer that was
> matched by both "same_at_start" and "same_at_end" loops.
This was two years ago, but the patch doesn't seem to be applied? It
was a rather obscure timing-related (but serious) bug.
Noam, did Eli's explanation help?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-09-05 14:03 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-28 22:05 bug#23397: 25.0.92; assertion failure auto-reverting a file being overwritten Ken Raeburn
2016-05-02 16:47 ` Eli Zaretskii
2016-05-02 20:43 ` Ken Raeburn
2016-05-03 15:15 ` Eli Zaretskii
2016-05-03 21:04 ` Ken Raeburn
2018-06-16 21:45 ` Noam Postavsky
2018-06-17 5:36 ` Eli Zaretskii
2020-09-05 14:03 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.