[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs 28: Specific TTF font gets loaded with font-backend x instead

From: Tassilo Horn
Subject: Re: Emacs 28: Specific TTF font gets loaded with font-backend x instead of ftcrhb
Date: Sat, 08 Feb 2020 10:39:22 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Eli Zaretskii <> writes:

>> By the way, if I enable ligatures, I get reproducible infloops or
>> something alike.  The visual bell starts ringing/blinking, C-g won't
>> help, and even with debug-on-{error,quit} I'm unable to get into the
>> debugger.  I can reproduce that simply by starting Gnus and trying to
>> enter a group but I got that also once with pushing my commits in
>> Magit and sometimes when quitting emacs with C-x C-c.
>> Attached is a GDB backtrace.
> Some Lisp error happens during command processing.  We need to know
> which error.  Try this:
>   (gdb) frame 16
>   (gdb) pp data
> The number 16 may need to be changed, it should be the number of this
> call-stack frame:
>   #16 0x000055555566d191 in cmd_error (data=XIL(0x555558f70713)) at
> keyboard.c:953

(gdb) frame 16
#16 0x000055555566d16e in cmd_error (data=XIL(0x555559b53a43))
    at keyboard.c:953
953       cmd_error_internal (data, macroerror);
(gdb) pp data
(error "Attempt to shape unibyte text")

That's signalled in composite.c's Fcomposition_get_gstring function,
either line 1738 or 1749.  I've set beakpoints there, and now I have an
emacs instance halted at 1749.

Thread 1 "emacs" hit Breakpoint 4, Fcomposition_get_gstring (
    from=<optimized out>, to=<optimized out>, font_object=XIL(0x5555562346e5), 
    string=XIL(0x555556a34ec4)) at composite.c:1749
1749            error ("Attempt to shape unibyte text");

The backtrace is this:

--8<---------------cut here---------------start------------->8---
(gdb) bt
#0  0x000055555572f850 in Fcomposition_get_gstring
    (from=<optimized out>, to=<optimized out>, font_object=XIL(0x5555562346e5), 
string=XIL(0x555556a34ec4)) at composite.c:1749
#1  0x000055555572fd75 in autocmp_chars
    (rule=XIL(0x555556899e35), charpos=<optimized out>, bytepos=0, limit=2, 
win=0x55555621c3e0, face=0x5555588fa5d0, string=XIL(0x555556a34ec4), 
direction=XIL(0x25b0)) at lisp.h:1147
#2  0x00005555557331ea in composition_reseat_it
    (cmp_it=0x7fffffff9340, charpos=0, bytepos=0, endpos=2, w=0x55555621c3e0, 
bidi_level=<optimized out>, face=0x5555588fa5d0, string=XIL(0x555556a34ec4))
    at composite.c:1222
#3  0x00005555555bcdba in next_element_from_string (it=0x7fffffff8ac0)
    at xdisp.c:8408
#4  0x00005555555bcbcd in next_element_from_string (it=0x7fffffff8ac0)
    at xdisp.c:8316
#5  0x00005555555bf267 in get_next_display_element (it=0x7fffffff8ac0)
    at xdisp.c:7518
#6  0x00005555555c50b9 in display_string
    (string=<optimized out>, lisp_string=<optimized out>, 
face_string=<optimized out>, face_string_pos=<optimized out>, start=<optimized 
out>, it=0x7fffffff8ac0, field_width=<optimized out>, precision=<optimized 
out>, max_x=871, multibyte=<optimized out>) at xdisp.c:26721
#7  0x00005555555c567a in display_mode_element
    (it=0x7fffffff8ac0, depth=3, field_width=0, precision=-3, 
elt=XIL(0x555556a3--Type <RET> for more, q to quit, c to continue without 
4ec4), props=XIL(0), risky=false) at lisp.h:1541
#8  0x00005555555c6cd0 in display_mode_element (it=0x7fffffff8ac0, depth=1, 
field_width=0, precision=0, elt=XIL(0x555558f75af3), props=XIL(0), 
risky=<optimized out>) at lisp.h:1449
#9  0x00005555555c7590 in display_mode_line (w=<optimized out>, 
face_id=MODE_LINE_FACE_ID, format=XIL(0x555558f75b33)) at xdisp.c:25065
#10 0x00005555555c785b in display_mode_lines (w=0x55555621c3e0) at lisp.h:730
#11 0x00005555555e2894 in redisplay_window (window=XIL(0x55555621c3e5), 
just_this_one_p=<optimized out>) at xdisp.c:18861
#12 0x00005555555e3d77 in redisplay_window_0 (window=<optimized out>) at 
#13 0x00005555556dac06 in internal_condition_case_1 (bfun=0x5555555e3d48 
<redisplay_window_0>, arg=XIL(0x55555621c3e5), handlers=<optimized out>, 
hfun=0x5555555a9fa8 <redisplay_window_error>) at eval.c:1379
#14 0x00005555555ad7d6 in redisplay_windows (window=XIL(0x55555621c3e5)) at 
#15 0x00005555555d1b0e in redisplay_internal () at xdisp.c:15642
#16 0x00005555555d2b5f in redisplay () at xdisp.c:14869
#17 0x0000555555673e35 in read_char (commandflag=1, map=XIL(0x555559798473), 
prev_event=XIL(0), used_mouse_menu=0x7fffffffe08b, end_time=0x0) at 
#18 0x0000555555677272 in read_key_sequence (keybuf=0x7fffffffe1c0, 
prompt=XIL(0), dont_downcase_last=<optimized out>, 
can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) 
at keyboard.c:9553
#19 0x0000555555677dd5 in command_loop_1 () at keyboard.c:1350
#20 0x00005555556dab90 in internal_condition_case (bfun=0x555555677bf8 
<command_loop_1>, handlers=<optimized out>, hfun=0x55555566d058 <cmd_error>) at 
#21 0x0000555555669db5 in command_loop_2 (ignore=<optimized out>) at lisp.h:1032
#22 0x00005555556dab07 in internal_catch (tag=<optimized out>, 
func=0x555555669d99 <command_loop_2>, arg=XIL(0)) at eval.c:1116
#23 0x0000555555669acb in command_loop () at keyboard.c:1070
#24 0x000055555566cd2e in recursive_edit_1 () at keyboard.c:714
#25 0x000055555566cfb1 in Frecursive_edit () at keyboard.c:786
#26 0x0000555555668cc7 in main (argc=1, argv=0x7fffffffe608) at emacs.c:2037

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)
--8<---------------cut here---------------end--------------->8---

I keep this instance open for inspection (but it is easy for me to get
there again anyway).  Just tell me what frames are of interest to you
and what I should inspect there.  (I guessed that maybe frame 6 could be
of interest to get the string but that's optimized out [should I requild
-O0?], and frame 14 to get the window but "p window" just prints $5 =


reply via email to

[Prev in Thread] Current Thread [Next in Thread]