The crash originally appeared while editing a YAML file in yaml mode,
and I've lost some unsaved changes (that's why I chose severity above normal).
Below is a small example to reproduce the bug:
File trans-regions-bug.el:
(with-temp-buffer
(insert (propertize "a" 'face 'font-lock-variable-name-face))
(insert ":\n")
(insert (propertize "b" 'face 'font-lock-variable-name-face))
(insert ": \x2113\x2080\n")
(insert (propertize "v" 'face 'font-lock-variable-name-face))
(insert ": scaling\n")
;; Move last line to the beginning
(transpose-regions 1 1 10 21))
Run emacs with the following command, it crashes immediately:
emacs -Q --batch -l ./trans-regions-bug.el
Here is a backtrace with the above command run inside gdb
(with common unrelated messages remoced):
GNU gdb (Debian 13.1-3) 13.1
Debuginfod has been enabled.
(gdb) run
Starting program: /usr/bin/emacs -Q --batch -l ./trans-regions-bug.el
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x00005555557e1643 in graft_intervals_into_buffer (
source=source@entry=0x555555ee6c88, position=position@entry=12,
length=length@entry=13, buffer=0x555555e9d220, inherit=inherit@entry=false)
at ./debian/build-src/src/intervals.c:1669
Download failed: ... Continuing without source file ./debian/build-gtk/src/./debian/build-src/src/intervals.c.
1669 ./debian/build-src/src/intervals.c: no such file
(gdb) backtrace
#0 0x00005555557e1643 in graft_intervals_into_buffer (
source=source@entry=0x555555ee6c88, position=position@entry=12,
length=length@entry=13, buffer=0x555555e9d220, inherit=inherit@entry=false)
at ./debian/build-src/src/intervals.c:1669
#1 0x0000555555760106 in Ftranspose_regions (startr1=<optimized out>,
endr1=<optimized out>, startr2=<optimized out>, endr2=<optimized out>,
leave_markers=0x0) at ./debian/build-src/src/editfns.c:4750
#2 0x000055555576ee2e in eval_sub (form=<optimized out>)
at ./debian/build-src/src/eval.c:2512
#3 0x000055555576f00d in Fprogn (body=0x0)
at ./debian/build-src/src/eval.c:436
#4 0x000055555576ed2a in eval_sub (form=<optimized out>)
at ./debian/build-src/src/eval.c:2449
#5 0x0000555555770e47 in Funwind_protect (args=0x555555f85923)
at ./debian/build-src/src/lisp.h:1523
#6 0x000055555576ed2a in eval_sub (form=<optimized out>)
at ./debian/build-src/src/eval.c:2449
#7 0x000055555576f00d in Fprogn (body=0x0, body@entry=0x555555f85a83)
at ./debian/build-src/src/eval.c:436
#8 0x000055555575b197 in Fsave_current_buffer (args=0x555555f85a83)
at ./debian/build-src/src/editfns.c:874
#9 0x000055555576ed2a in eval_sub (form=<optimized out>)
at ./debian/build-src/src/eval.c:2449
#10 0x00005555557708bd in Fprogn (body=0x0)
at ./debian/build-src/src/eval.c:436
#11 Flet (args=0x555555f85733) at ./debian/build-src/src/eval.c:1026
#12 0x000055555576ed2a in eval_sub (form=<optimized out>)
at ./debian/build-src/src/eval.c:2449
#13 0x000055555579ee31 in readevalloop (
readcharfun=readcharfun@entry=0x555555e990e5, infile0=infile0@entry=0x0,
sourcename=sourcename@entry=0x555555fe31f4,
printflag=printflag@entry=false, unibyte=unibyte@entry=0x0,
readfun=readfun@entry=0x0, start=0x0, end=<optimized out>)
at ./debian/build-src/src/lread.c:2348
#14 0x00005555557a00d7 in Feval_buffer (buffer=<optimized out>, printflag=0x0,
filename=0x555555fe31f4, unibyte=0x0, do_allow_print=<optimized out>)
at ./debian/build-src/src/lread.c:2421
#15 0x00007ffff1bde408 in F6c6f61642d776974682d636f64652d636f6e76657273696f6e_load_with_code_conversion_0 ()
from /usr/bin/../lib/emacs/29.1/native-lisp/29.1-f7fc9016/preloaded/mule-3352613d-5a32cafd.eln
#16 0x000055555576afd6 in Ffuncall (nargs=nargs@entry=5,
args=args@entry=0x7fffffffcd60) at ./debian/build-src/src/eval.c:2995
#17 0x000055555579fd17 in call4 (arg4=0x30, arg3=<optimized out>,
arg2=0x555555fe31f4, arg1=<optimized out>, fn=<optimized out>)
at ./debian/build-src/src/lisp.h:3270
#18 Fload (file=0x555555fe2f14, noerror=<optimized out>,
nomessage=<optimized out>, nosuffix=<optimized out>,
must_suffix=<optimized out>) at ./debian/build-src/src/lread.c:1484
#19 0x00007fffeeb2f173 in F636f6d6d616e642d6c696e652d31_command_line_1_0 ()
from /usr/bin/../lib/emacs/29.1/native-lisp/29.1-f7fc9016/preloaded/startup-bbc6ea72-371a93db.eln
#20 0x000055555576afd6 in Ffuncall (nargs=2, args=0x7fffffffd260)
at ./debian/build-src/src/eval.c:2995
#21 0x00007fffeeb265a6 in F636f6d6d616e642d6c696e65_command_line_0 ()
from /usr/bin/../lib/emacs/29.1/native-lisp/29.1-f7fc9016/preloaded/startup-bbc6ea72-371a93db.eln
#22 0x000055555576afd6 in Ffuncall (nargs=1, args=0x7fffffffd338)
at ./debian/build-src/src/eval.c:2995
#23 0x00007fffeeb22300 in F6e6f726d616c2d746f702d6c6576656c_normal_top_level_0
()
from /usr/bin/../lib/emacs/29.1/native-lisp/29.1-f7fc9016/preloaded/startup-bbc6ea72-371a93db.eln
#24 0x000055555576ed1f in eval_sub (form=form@entry=0x7fffef127673)
at ./debian/build-src/src/eval.c:2495
#25 0x0000555555771356 in Feval (form=0x7fffef127673, lexical=<optimized out>)
at ./debian/build-src/src/eval.c:2361
#26 0x0000555555769667 in internal_condition_case (
bfun=bfun@entry=0x5555556d9040 <top_level_2>,
handlers=handlers@entry=0x90, hfun=hfun@entry=0x5555556e07e0 <cmd_error>)
at ./debian/build-src/src/eval.c:1474
#27 0x00005555556d9a36 in top_level_1 (ignore=ignore@entry=0x0)
at ./debian/build-src/src/keyboard.c:1150
#28 0x00005555557695c1 in internal_catch (tag=tag@entry=0x10080,
func=func@entry=0x5555556d9a10 <top_level_1>, arg=arg@entry=0x0)
at ./debian/build-src/src/eval.c:1197
#29 0x00005555556d8fbf in command_loop ()
at ./debian/build-src/src/keyboard.c:1110
#30 0x00005555556e0362 in recursive_edit_1 ()
at ./debian/build-src/src/keyboard.c:720
#31 0x00005555556e06f0 in Frecursive_edit ()
at ./debian/build-src/src/keyboard.c:803
#32 0x00005555555acac0 in main (argc=5, argv=0x7fffffffd808)
at ./debian/build-src/src/emacs.c:2529
Best wishes,
Gábor
The OS is actually Devuan 5.0, and not the one below.