The issue originally appeared as a crash of Evince and was reported in the Evince issue tracker.
During the debugging it appeared that the problem is not in Evince itself but either in cairo or the cairo backend of poppler.
Some debug output of pdftocairo using Gnome debugger:
matthias@cubitus ~/Downloads/MagPi $ gdb --args pdftocairo MagPi99.pdf -png test
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-solus-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from pdftocairo...
(No debugging symbols found in pdftocairo)
(gdb) run
Starting program: /usr/bin/pdftocairo MagPi99.pdf -png test
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
Syntax Warning: Invalid Font Weight
(... repeated many times)
Syntax Warning: Invalid Font Weight
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7eb8bb3 in _cairo_damage_destroy (damage=0x14cb1b0) at cairo-damage.c:83
83 cairo-damage.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0 0x00007ffff7eb8bb3 in _cairo_damage_destroy (damage=0x14cb1b0) at cairo-damage.c:83
#1 INT_cairo_surface_destroy (surface=0x277e840) at cairo-surface.c:974
#2 0x00007ffff7e9b280 in _cairo_scaled_glyph_fini (scaled_font=0x19a1630, scaled_glyph=0x276e1c0) at cairo-scaled-font.c:212
#3 0x00007ffff7e9b3ad in _cairo_scaled_glyph_page_destroy (page=0x276ced0, scaled_font=<optimized out>) at cairo-scaled-font.c:462
#4 _cairo_scaled_glyph_page_pluck (closure=0x276ced0) at cairo-scaled-font.c:480
#5 0x00007ffff7e9f6c3 in _cairo_cache_remove (entry=0x276ced0, cache=<optimized out>) at cairo-cache.c:296
#6 _cairo_cache_remove_random (cache=<optimized out>) at cairo-cache.c:223
#7 _cairo_cache_shrink_to_accommodate (additional=<optimized out>, cache=<optimized out>) at cairo-cache.c:243
#8 _cairo_cache_thaw (cache=<optimized out>) at cairo-cache.c:179
#9 _cairo_scaled_font_thaw_cache (scaled_font=0x1daf530) at cairo-scaled-font.c:806
#10 0x00007ffff7ea1b9b in _cairo_scaled_font_glyph_device_extents (scaled_font=0x1daf530, glyphs=<optimized out>, num_glyphs=<optimized out>,
extents=0x7fffffffc47c, overlap_out=0x7fffffffc44c) at cairo-scaled-font.c:2279
#11 0x00007ffff7e531d1 in _cairo_composite_rectangles_init_for_glyphs (extents=extents@entry=0x7fffffffc460, surface=surface@entry=0x1cce920,
op=<optimized out>, source=<optimized out>, scaled_font=scaled_font@entry=0x1daf530, glyphs=glyphs@entry=0x7fffffffcba0, num_glyphs=18, clip=0x1174730,
overlap=0x7fffffffc44c) at cairo-composite-rectangles.c:446
#12 0x00007ffff7e54380 in _cairo_compositor_glyphs (compositor=0x7ffff7fa65a0 <spans>, surface=0x1cce920, op=<optimized out>, source=<optimized out>,
glyphs=0x7fffffffcba0, num_glyphs=18, scaled_font=0x1daf530, clip=0x1174730) at cairo-compositor.c:238
#13 0x00007ffff7e67b85 in _cairo_image_surface_glyphs (abstract_surface=<optimized out>, op=<optimized out>, source=<optimized out>, glyphs=<optimized out>,
num_glyphs=<optimized out>, scaled_font=<optimized out>, clip=0x1174730) at cairo-image-surface.c:1023
#14 0x00007ffff7ebdfde in _cairo_surface_show_text_glyphs (surface=0x1cce920, op=CAIRO_OPERATOR_OVER, source=0x7fffffffc850, utf8=0x0,
utf8_len=<optimized out>, glyphs=0x7fffffffcba0, num_glyphs=<optimized out>, clusters=0x0, num_clusters=<optimized out>, cluster_flags=0,
scaled_font=0x1daf530, clip=0x1174730) at cairo-surface.c:2898
#15 0x00007ffff7e5bc30 in _cairo_gstate_show_text_glyphs (gstate=0x27882e0, glyphs=<optimized out>, num_glyphs=<optimized out>, info=0x0)
at cairo-gstate.c:2077
#16 0x00007ffff7ecfae2 in cairo_show_glyphs (num_glyphs=<optimized out>, glyphs=<optimized out>, cr=0x511160) at cairo.c:3629
#17 cairo_show_glyphs (cr=0x511160, glyphs=<optimized out>, num_glyphs=<optimized out>) at cairo.c:3609
#18 0x0000000000410779 in ?? ()
#19 0x00007ffff7b472b6 in Gfx::doShowText(GooString const*) () from /usr/lib/libpoppler.so.108
#20 0x00007ffff7b47d0d in Gfx::opShowSpaceText(Object*, int) () from /usr/lib/libpoppler.so.108
#21 0x00007ffff7b3de07 in Gfx::go(bool) () from /usr/lib/libpoppler.so.108
#22 0x00007ffff7b3e32f in Gfx::display(Object*, bool) () from /usr/lib/libpoppler.so.108
#23 0x00007ffff7b9bca2 in Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) () from /usr/lib/libpoppler.so.108
#24 0x000000000040a659 in ?? ()
#25 0x00007ffff743aa92 in __libc_start_main () from /usr/lib/libc.so.6
#26 0x000000000040c1be in ?? ()
(gdb)In normal CLI execution the program crashes with double free or corruption (out).
Few more debug examples can be found in the above Evince issue.
I'm reporting the issue here because it seems specific to the Solus build.