Hello Joachim, I got the idea that I should be able to produce a broken setup too ;-)
And yes, just by installing nvidia-driver into my test VM I get the crash below. It is caused by trying to retrieve GL_NUM_EXTENSIONS. This fails due to our broken setup and leaves the variable that should store it uninitialized and is then used for the alloction attempt. I was not able to reproduce it that way in a Buster/testing VM - abiword just opens after two libEGL warnings. Therefore it looks like upstream have fixed this already. Kind regards, Bernhard Stretch: ########### $ abiword pci id for fd 5: 1234:1111, driver (null) (abiword:30203): GLib-ERROR **: /build/glib2.0-YYXhFA/glib2.0-2.50.3/./glib/gmem.c:100: failed to allocate 4272896292 bytes Trace/Breakpoint ausgelöst (Speicherabzug geschrieben) root@debian:~# coredumpctl gdb ... Core was generated by `abiword'. Program terminated with signal SIGTRAP, Trace/breakpoint trap. #0 _g_log_abort (breakpoint=1) at ././glib/gmessages.c:509 509 ././glib/gmessages.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt #0 0xb4d8ae40 in _g_log_abort (breakpoint=1) at ././glib/gmessages.c:509 #1 0xb4d8bdd3 in g_log_default_handler (log_domain=0xb4dcff6e "GLib", log_level=6, message=0xb0f00470 "/build/glib2.0-YYXhFA/glib2.0-2.50.3/./glib/gmem.c:100: failed to allocate 4290460004 bytes", unused_data=0x0) at ././glib/gmessages.c:2896 #2 0xb4d8c114 in g_logv (log_domain=0xb4dcff6e "GLib", log_level=G_LOG_LEVEL_ERROR, format=0xb4dd8abc "%s: failed to allocate %u bytes", args=0xbfeecdfc "\204\212ݴd9\273\377\020\227{\267") at ././glib/gmessages.c:1297 #3 0xb4d8c2e5 in g_log (log_domain=0xb4dcff6e "GLib", log_level=G_LOG_LEVEL_ERROR, format=0xb4dd8abc "%s: failed to allocate %u bytes") at ././glib/gmessages.c:1359 #4 0xb4d8a8e0 in g_malloc (n_bytes=4290460004) at ././glib/gmem.c:99 #5 0xb5e4abf6 in _cogl_context_get_gl_extensions (context=0x988688) at cogl-context.c:686 #6 0xb5e46426 in _cogl_driver_update_features (ctx=0x988688, error=0xbfeecfa8) at driver/gl/gl/cogl-driver-gl.c:380 #7 0xb5e8431a in _cogl_winsys_context_init (context=0x988688, error=0xbfeecfa8) at winsys/cogl-winsys-stub.c:110 #8 0xb5e49fe4 in cogl_context_new (display=0x9829d0, error=0xbfeecfa8) at cogl-context.c:237 #9 0xb5f6b12f in clutter_backend_do_real_create_context (error=0xbfeecfa4, driver_id=<optimized out>, backend=0x985c18 [ClutterBackendGdk]) at clutter-backend.c:331 #10 0xb5f6b12f in clutter_backend_real_create_context (backend=0x985c18 [ClutterBackendGdk], error=0xbfeed108) at clutter-backend.c:414 #11 0xb5f8563d in _clutter_feature_init (error=0xbfeed108) at clutter-feature.c:107 #12 0xb5f96c1c in clutter_init_real (error=error@entry=0xbfeed108) at clutter-main.c:1406 #13 0xb5f96e41 in post_parse_hook (context=0x990170, group=0x98eb80, data=0x0, error=0xbfeed108) at clutter-main.c:1572 #14 0xb4d91760 in g_option_context_parse (context=0x990170, argc=0xbfeed254, argv=0xbfeed17c, error=0xbfeed108) at ././glib/goption.c:2175 #15 0xb5f97ced in clutter_parse_args (error=0xbfeed104, argv=0xbfeed17c, argc=0xbfeed254) at clutter-main.c:1792 #16 0xb5f97ced in clutter_init (argc=0xbfeed254, argv=0xbfeed17c) at clutter-main.c:1854 #17 0xb60f65f2 in gtk_clutter_init (argc=0xbfeed254, argv=0xbfeed17c) at ./gtk-clutter-util.c:233 #18 0xb7241a1f in AP_UnixApp::main(char const*, int, char**) (szAppName=0x42e710 "abiword", argc=<optimized out>, argv=<optimized out>) at ap_UnixApp.cpp:1301 #19 0x0042e50e in main(int, char**) (argc=1, argv=0xbfeed314) at ../src/wp/main/gtk/UnixMain.cpp:30 (gdb) bt full ... #5 0xb5e4abf6 in _cogl_context_get_gl_extensions (context=0x988688) at cogl-context.c:686 num_extensions = -1074868648 i = <optimized out> env_disabled_extensions = <optimized out> ret = <optimized out> ... (gdb) list _cogl_context_get_gl_extensions ... 681 { 682 int num_extensions, i; 683 684 context->glGetIntegerv (GL_NUM_EXTENSIONS, &num_extensions); 685 686 ret = g_malloc (sizeof (char *) * (num_extensions + 1)); <-- 687 Buster/testing: ########### benutzer@debian:~$ abiword pci id for fd 5: 1234:1111, driver (null) libEGL warning: DRI3: No driver found libEGL warning: DRI2: failed to authenticate
apt update apt install mc htop systemd-coredump xserver-xorg xdm openbox xterm dpkg-dev devscripts strace gdb valgrind nvidia-driver abiword abiword-dbgsym libabiword-3.0-dbgsym libclutter-gtk-1.0-0-dbgsym libclutter-1.0-dbg libglib2.0-0-dbg libcogl20-dbgsym libgtk-3-0-dbgsym apt build-dep cogl systemctl start xdm mkdir cogl/orig -p cd cogl/orig apt source cogl cd ../.. mkdir libclutter-1.0-0/orig -p cd libclutter-1.0-0/orig apt source libclutter-1.0-0 cd ../.. export DISPLAY=:0 #export CLUTTER_ENABLE_DIAGNOSTIC=1 #export CLUTTER_DEBUG=1 #not compiled in $ abiword pci id for fd 5: 1234:1111, driver (null) (abiword:30203): GLib-ERROR **: /build/glib2.0-YYXhFA/glib2.0-2.50.3/./glib/gmem.c:100: failed to allocate 4272896292 bytes Trace/Breakpoint ausgelöst (Speicherabzug geschrieben) root@debian:~# coredumpctl gdb PID: 25203 (abiword) UID: 1000 (benutzer) GID: 1000 (benutzer) Signal: 5 (TRAP) Timestamp: Wed 2018-09-19 05:15:04 CEST (1min 0s ago) Command Line: abiword Executable: /usr/bin/abiword Control Group: /user.slice/user-1000.slice/session-4.scope Unit: session-4.scope Slice: user-1000.slice Session: 4 Owner UID: 1000 (benutzer) Boot ID: 3dfb0c4544b641ed869c13bc1e3da6bc Machine ID: 3e718c50031d49a28612735bafe74301 Hostname: debian Storage: /var/lib/systemd/coredump/core.abiword.1000.3dfb0c4544b641ed869c13bc1e3da6bc.25203.1537326904000000000000.lz4 Message: Process 25203 (abiword) of user 1000 dumped core. Stack trace of thread 25203: #0 0x00000000b4d8ae40 n/a (libglib-2.0.so.0) #1 0x00000000b4d8bdd3 g_log_default_handler (libglib-2.0.so.0) #2 0x00000000b4d8c114 g_logv (libglib-2.0.so.0) #3 0x00000000b4d8c2e5 g_log (libglib-2.0.so.0) #4 0x00000000b4d8a8e0 g_malloc (libglib-2.0.so.0) #5 0x00000000b5e4abf6 n/a (libcogl.so.20) #6 0x00000000b5e46426 n/a (libcogl.so.20) #7 0x00000000b5e8431a n/a (libcogl.so.20) #8 0x00000000b5e49fe4 cogl_context_new (libcogl.so.20) #9 0x00000000b5f6b12f n/a (libclutter-1.0.so.0) #10 0x00000000b5f8563d n/a (libclutter-1.0.so.0) #11 0x00000000b5f96c1c n/a (libclutter-1.0.so.0) #12 0x00000000b5f96e41 n/a (libclutter-1.0.so.0) #13 0x00000000b4d91760 g_option_context_parse (libglib-2.0.so.0) #14 0x00000000b5f97ced clutter_init (libclutter-1.0.so.0) #15 0x00000000b60f65f2 gtk_clutter_init (libclutter-gtk-1.0.so.0) #16 0x00000000b7241a1f _ZN10AP_UnixApp4mainEPKciPPc (libabiword-3.0.so) #17 0x000000000042e50e main (abiword) #18 0x00000000b6ef6286 __libc_start_main (libc.so.6) #19 0x000000000042e54c _start (abiword) GNU gdb (Debian 7.12-6) 7.12.0.20161007-git Copyright (C) 2016 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 "i686-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://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 /usr/bin/abiword...Reading symbols from /usr/lib/debug/.build-id/89/f2a379e8af2085d0160dea2310cc7ca14b0c28.debug...done. done. [New LWP 25203] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". Core was generated by `abiword'. Program terminated with signal SIGTRAP, Trace/breakpoint trap. #0 0xb4d8ae40 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 (gdb) bt #0 0xb4d8ae40 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #1 0xb4d8bdd3 in g_log_default_handler () from /lib/i386-linux-gnu/libglib-2.0.so.0 #2 0xb4d8c114 in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0 #3 0xb4d8c2e5 in g_log () from /lib/i386-linux-gnu/libglib-2.0.so.0 #4 0xb4d8a8e0 in g_malloc () from /lib/i386-linux-gnu/libglib-2.0.so.0 #5 0xb5e4abf6 in ?? () from /usr/lib/i386-linux-gnu/libcogl.so.20 #6 0xb5e46426 in ?? () from /usr/lib/i386-linux-gnu/libcogl.so.20 #7 0xb5e8431a in ?? () from /usr/lib/i386-linux-gnu/libcogl.so.20 #8 0xb5e49fe4 in cogl_context_new () from /usr/lib/i386-linux-gnu/libcogl.so.20 #9 0xb5f6b12f in ?? () from /usr/lib/i386-linux-gnu/libclutter-1.0.so.0 #10 0xb5f8563d in ?? () from /usr/lib/i386-linux-gnu/libclutter-1.0.so.0 #11 0xb5f96c1c in ?? () from /usr/lib/i386-linux-gnu/libclutter-1.0.so.0 #12 0xb5f96e41 in ?? () from /usr/lib/i386-linux-gnu/libclutter-1.0.so.0 #13 0xb4d91760 in g_option_context_parse () from /lib/i386-linux-gnu/libglib-2.0.so.0 #14 0xb5f97ced in clutter_init () from /usr/lib/i386-linux-gnu/libclutter-1.0.so.0 #15 0xb60f65f2 in gtk_clutter_init (argc=0xbfeed254, argv=0xbfeed17c) at ./gtk-clutter-util.c:233 #16 0xb7241a1f in AP_UnixApp::main (szAppName=0x42e710 "abiword", argc=<optimized out>, argv=<optimized out>) at ap_UnixApp.cpp:1301 #17 0x0042e50e in main (argc=1, argv=0xbfeed314) at ../src/wp/main/gtk/UnixMain.cpp:30 Core was generated by `abiword'. Program terminated with signal SIGTRAP, Trace/breakpoint trap. #0 _g_log_abort (breakpoint=1) at ././glib/gmessages.c:509 509 ././glib/gmessages.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt #0 0xb4d8ae40 in _g_log_abort (breakpoint=1) at ././glib/gmessages.c:509 #1 0xb4d8bdd3 in g_log_default_handler (log_domain=0xb4dcff6e "GLib", log_level=6, message=0xb0f00470 "/build/glib2.0-YYXhFA/glib2.0-2.50.3/./glib/gmem.c:100: failed to allocate 4290460004 bytes", unused_data=0x0) at ././glib/gmessages.c:2896 #2 0xb4d8c114 in g_logv (log_domain=0xb4dcff6e "GLib", log_level=G_LOG_LEVEL_ERROR, format=0xb4dd8abc "%s: failed to allocate %u bytes", args=0xbfeecdfc "\204\212ݴd9\273\377\020\227{\267") at ././glib/gmessages.c:1297 #3 0xb4d8c2e5 in g_log (log_domain=0xb4dcff6e "GLib", log_level=G_LOG_LEVEL_ERROR, format=0xb4dd8abc "%s: failed to allocate %u bytes") at ././glib/gmessages.c:1359 #4 0xb4d8a8e0 in g_malloc (n_bytes=4290460004) at ././glib/gmem.c:99 #5 0xb5e4abf6 in _cogl_context_get_gl_extensions (context=0x988688) at cogl-context.c:686 #6 0xb5e46426 in _cogl_driver_update_features (ctx=0x988688, error=0xbfeecfa8) at driver/gl/gl/cogl-driver-gl.c:380 #7 0xb5e8431a in _cogl_winsys_context_init (context=0x988688, error=0xbfeecfa8) at winsys/cogl-winsys-stub.c:110 #8 0xb5e49fe4 in cogl_context_new (display=0x9829d0, error=0xbfeecfa8) at cogl-context.c:237 #9 0xb5f6b12f in clutter_backend_do_real_create_context (error=0xbfeecfa4, driver_id=<optimized out>, backend=0x985c18 [ClutterBackendGdk]) at clutter-backend.c:331 #10 0xb5f6b12f in clutter_backend_real_create_context (backend=0x985c18 [ClutterBackendGdk], error=0xbfeed108) at clutter-backend.c:414 #11 0xb5f8563d in _clutter_feature_init (error=0xbfeed108) at clutter-feature.c:107 #12 0xb5f96c1c in clutter_init_real (error=error@entry=0xbfeed108) at clutter-main.c:1406 #13 0xb5f96e41 in post_parse_hook (context=0x990170, group=0x98eb80, data=0x0, error=0xbfeed108) at clutter-main.c:1572 #14 0xb4d91760 in g_option_context_parse (context=0x990170, argc=0xbfeed254, argv=0xbfeed17c, error=0xbfeed108) at ././glib/goption.c:2175 #15 0xb5f97ced in clutter_parse_args (error=0xbfeed104, argv=0xbfeed17c, argc=0xbfeed254) at clutter-main.c:1792 #16 0xb5f97ced in clutter_init (argc=0xbfeed254, argv=0xbfeed17c) at clutter-main.c:1854 #17 0xb60f65f2 in gtk_clutter_init (argc=0xbfeed254, argv=0xbfeed17c) at ./gtk-clutter-util.c:233 #18 0xb7241a1f in AP_UnixApp::main(char const*, int, char**) (szAppName=0x42e710 "abiword", argc=<optimized out>, argv=<optimized out>) at ap_UnixApp.cpp:1301 #19 0x0042e50e in main(int, char**) (argc=1, argv=0xbfeed314) at ../src/wp/main/gtk/UnixMain.cpp:30 #5 0xb5e4abf6 in _cogl_context_get_gl_extensions (context=0x988688) at cogl-context.c:686 num_extensions = -1074868648 i = <optimized out> env_disabled_extensions = <optimized out> ret = <optimized out> . gdb -q --args abiword set height 0 set width 0 set pagination off directory /home/benutzer/libclutter-1.0-0/orig/clutter-1.0-1.26.0+dfsg/clutter directory /home/benutzer/cogl/orig/cogl-1.22.2/cogl run (gdb) list _cogl_context_get_gl_extensions 671 char ** 672 _cogl_context_get_gl_extensions (CoglContext *context) 673 { 674 const char *env_disabled_extensions; 675 char **ret; 676 677 /* In GL 3, querying GL_EXTENSIONS is deprecated so we have to build 678 * the array using glGetStringi instead */ 679 #ifdef HAVE_COGL_GL 680 if (context->driver == COGL_DRIVER_GL3) 681 { 682 int num_extensions, i; 683 684 context->glGetIntegerv (GL_NUM_EXTENSIONS, &num_extensions); 685 686 ret = g_malloc (sizeof (char *) * (num_extensions + 1)); <-- 687 688 for (i = 0; i < num_extensions; i++) 689 { 690 const char *ext = 691 (const char *) context->glGetStringi (GL_EXTENSIONS, i); 692 ret[i] = g_strdup (ext); 693 } 694 695 ret[num_extensions] = NULL; 696 } 697 else 698 #endif 699 { 700 const char *all_extensions = 701 (const char *) context->glGetString (GL_EXTENSIONS); 702 703 ret = g_strsplit (all_extensions, " ", 0 /* max tokens */); 704 } 705 706 if ((env_disabled_extensions = g_getenv ("COGL_DISABLE_GL_EXTENSIONS")) 707 || _cogl_config_disable_gl_extensions) 708 { 709 char **split_env_disabled_extensions; 710 char **split_conf_disabled_extensions; 711 char **src, **dst; 712 713 if (env_disabled_extensions) 714 split_env_disabled_extensions = 715 g_strsplit (env_disabled_extensions, 716 ",", 717 0 /* no max tokens */); 718 else 719 split_env_disabled_extensions = NULL; 720 721 if (_cogl_config_disable_gl_extensions) 722 split_conf_disabled_extensions = 723 g_strsplit (_cogl_config_disable_gl_extensions, 724 ",", 725 0 /* no max tokens */); 726 else 727 split_conf_disabled_extensions = NULL; 728 729 for (dst = ret, src = ret; 730 *src; 731 src++) 732 { 733 char **d; 734 735 if (split_env_disabled_extensions) 736 for (d = split_env_disabled_extensions; *d; d++) 737 if (!strcmp (*src, *d)) 738 goto disabled; 739 if (split_conf_disabled_extensions) 740 for (d = split_conf_disabled_extensions; *d; d++) 741 if (!strcmp (*src, *d)) 742 goto disabled; 743 744 *(dst++) = *src; 745 continue; 746 747 disabled: 748 g_free (*src); 749 continue; 750 } 751 752 *dst = NULL; 753 754 if (split_env_disabled_extensions) 755 g_strfreev (split_env_disabled_extensions); 756 if (split_conf_disabled_extensions) 757 g_strfreev (split_conf_disabled_extensions); 758 } 759 760 return ret; 761 } 762 cp orig/ try2 -a cd try2/cogl-1.22.2/ git init git add . git commit -m "Initial commit." 0001* ############ ############ ############ Thread 1 "abiword" received signal SIGSEGV, Segmentation fault. 0xb7743024 in __GI_____strtoull_l_internal (nptr=0x0, endptr=0xbffff22c, base=10, group=0, loc=0xb78c4bc0 <_nl_C_locobj>) at ./strtol_l.c:293 293 ./strtol_l.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt #0 0xb7743024 in __GI_____strtoull_l_internal (nptr=0x0, endptr=0xbffff22c, base=10, group=0, loc=0xb78c4bc0 <_nl_C_locobj>) at ./strtol_l.c:293 #1 0xb774364a in __GI___strtoull_l (nptr=0x0, endptr=0xbffff22c, base=10, loc=0xb78c4bc0 <_nl_C_locobj>) at ./strtol_l.c:548 #2 0xb55d9366 in g_ascii_strtoull (nptr=0x0, endptr=0xbffff22c, base=10) at ././glib/gstrfuncs.c:1165 #3 0xb667d501 in _cogl_gpu_info_parse_version_string (version_string=<optimized out>, tail=tail@entry=0xbffff268, version_ret=version_ret@entry=0x0, n_components=2) at cogl-gpu-info.c:90 #4 0xb667d5d6 in check_mesa_driver_package (strings=0xbffff2b0, version_ret=0x4856c8) at cogl-gpu-info.c:421 #5 0xb667d873 in _cogl_gpu_info_init (ctx=0x485688, gpu=0x4856b8) at cogl-gpu-info.c:527 #6 0xb667bc72 in _cogl_driver_update_features (context=0x485688, error=0xbffff3f8) at driver/gl/gles/cogl-driver-gles.c:284 #7 0xb66b83aa in _cogl_winsys_context_init (context=0x485688, error=0xbffff3f8) at winsys/cogl-winsys-stub.c:110 #8 0xb667e014 in cogl_context_new (display=0x47fb50, error=0xbffff3f8) at cogl-context.c:237 #9 0xb679f12f in clutter_backend_do_real_create_context (error=0xbffff3f4, driver_id=<optimized out>, backend=0x482c18 [ClutterBackendGdk]) at clutter-backend.c:331 #10 0xb679f12f in clutter_backend_real_create_context (backend=0x482c18 [ClutterBackendGdk], error=0xbffff558) at clutter-backend.c:414 #11 0xb67b963d in _clutter_feature_init (error=0xbffff558) at clutter-feature.c:107 #12 0xb67cac1c in clutter_init_real (error=error@entry=0xbffff558) at clutter-main.c:1406 #13 0xb67cae41 in post_parse_hook (context=0x48d170, group=0x48bb80, data=0x0, error=0xbffff558) at clutter-main.c:1572 #14 0xb55c5760 in g_option_context_parse (context=0x48d170, argc=0xbffff6a4, argv=0xbffff5cc, error=0xbffff558) at ././glib/goption.c:2175 #15 0xb67cbced in clutter_parse_args (error=0xbffff554, argv=0xbffff5cc, argc=0xbffff6a4) at clutter-main.c:1792 #16 0xb67cbced in clutter_init (argc=0xbffff6a4, argv=0xbffff5cc) at clutter-main.c:1854 #17 0xb692a5f2 in gtk_clutter_init (argc=0xbffff6a4, argv=0xbffff5cc) at ./gtk-clutter-util.c:233 #18 0xb7a75a1f in AP_UnixApp::main(char const*, int, char**) (szAppName=0x400710 "abiword", argc=<optimized out>, argv=<optimized out>) at ap_UnixApp.cpp:1301 #19 0x0040050e in main(int, char**) (argc=1, argv=0xbffff764) at ../src/wp/main/gtk/UnixMain.cpp:30 (gdb) list _cogl_gpu_info_parse_version_string 77 static CoglBool 78 _cogl_gpu_info_parse_version_string (const char *version_string, 79 int n_components, 80 const char **tail, 81 int *version_ret) 82 { 83 int version = 0; 84 uint64_t part; 85 int i; 86 87 for (i = 0; ; i++) 88 { 89 errno = 0; 90 part = g_ascii_strtoull (version_string, <-- 91 (char **) &version_string, 92 10); 93 94 if (errno || part > COGL_VERSION_MAX_COMPONENT_VALUE) 95 return FALSE; 96 97 version |= part << ((2 - i) * COGL_VERSION_COMPONENT_BITS); 98 99 if (i + 1 >= n_components) 100 break; 101 102 if (*version_string != '.') 103 return FALSE; 104 105 version_string++; 106 } 107 108 if (version_ret) 109 *version_ret = version; 110 if (tail) 111 *tail = version_string; 112 113 return TRUE; 114 } (gdb) list check_mesa_driver_package 411 412 static CoglBool 413 check_mesa_driver_package (const CoglGpuInfoStrings *strings, 414 int *version_ret) 415 { 416 uint64_t micro_part; 417 const char *v; 418 419 /* The version string should always begin a two-part GL version 420 number */ 421 if (!_cogl_gpu_info_parse_version_string (strings->version_string, 422 2, /* n_components */ 423 &v, /* tail */ 424 NULL /* version_ret */)) 425 return FALSE; 426 427 /* In mesa this will be followed optionally by "(Core Profile)" and 428 * then "Mesa" */ 429 v = strstr (v, " Mesa "); 430 if (!v) 431 return FALSE; 432 433 v += 6; 434 435 /* Next there will be a version string that is at least two 436 components. On a git devel build the version will be something 437 like "-devel<git hash>" instead */ 438 if (!_cogl_gpu_info_parse_version_string (v, 439 2, /* n_components */ 440 &v, /* tail */ 441 version_ret)) 442 return FALSE; 443 444 /* If it is a development build then we'll just leave the micro 445 number as 0 */ 446 if (g_str_has_prefix (v, "-devel")) 447 return TRUE; 448 449 /* Otherwise there should be a micro version number */ 450 if (*v != '.') 451 return FALSE; 452 453 errno = 0; 454 micro_part = g_ascii_strtoull (v + 1, NULL /* endptr */, 10 /* base */); 455 if (errno || micro_part > COGL_VERSION_MAX_COMPONENT_VALUE) 456 return FALSE; 457 458 *version_ret = COGL_VERSION_ENCODE (COGL_VERSION_GET_MAJOR (*version_ret), 459 COGL_VERSION_GET_MINOR (*version_ret), 460 micro_part); 461 462 return TRUE; 463 } 0002 ############ ############ ############ (abiword:26352): GLib-CRITICAL **: g_strsplit: assertion 'string != NULL' failed Thread 1 "abiword" received signal SIGSEGV, Segmentation fault. 0xb7788aea in __GI_strstr (haystack_start=0x0, needle_start=0xb66d5c59 "Intel(R)") at strstr.c:63 63 strstr.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt #0 0xb7788aea in __GI_strstr (haystack_start=0x0, needle_start=0xb66d5c59 "Intel(R)") at strstr.c:63 #1 0xb667d23d in match_phrase (string=0x0, phrase=0xb66d5c59 "Intel(R)") at cogl-gpu-info.c:119 #2 0xb667d8b5 in _cogl_gpu_info_init (ctx=0x485658, gpu=0x485688) at cogl-gpu-info.c:545 #3 0xb667bc72 in _cogl_driver_update_features (context=0x485658, error=0xbffff3f8) at driver/gl/gles/cogl-driver-gles.c:284 #4 0xb66b83aa in _cogl_winsys_context_init (context=0x485658, error=0xbffff3f8) at winsys/cogl-winsys-stub.c:110 #5 0xb667e014 in cogl_context_new (display=0x47fb50, error=0xbffff3f8) at cogl-context.c:237 #6 0xb679f12f in clutter_backend_do_real_create_context (error=0xbffff3f4, driver_id=<optimized out>, backend=0x482c18 [ClutterBackendGdk]) at clutter-backend.c:331 #7 0xb679f12f in clutter_backend_real_create_context (backend=0x482c18 [ClutterBackendGdk], error=0xbffff558) at clutter-backend.c:414 #8 0xb67b963d in _clutter_feature_init (error=0xbffff558) at clutter-feature.c:107 #9 0xb67cac1c in clutter_init_real (error=error@entry=0xbffff558) at clutter-main.c:1406 #10 0xb67cae41 in post_parse_hook (context=0x48d108, group=0x48bb38, data=0x0, error=0xbffff558) at clutter-main.c:1572 #11 0xb55c5760 in g_option_context_parse (context=0x48d108, argc=0xbffff6a4, argv=0xbffff5cc, error=0xbffff558) at ././glib/goption.c:2175 #12 0xb67cbced in clutter_parse_args (error=0xbffff554, argv=0xbffff5cc, argc=0xbffff6a4) at clutter-main.c:1792 #13 0xb67cbced in clutter_init (argc=0xbffff6a4, argv=0xbffff5cc) at clutter-main.c:1854 #14 0xb692a5f2 in gtk_clutter_init (argc=0xbffff6a4, argv=0xbffff5cc) at ./gtk-clutter-util.c:233 #15 0xb7a75a1f in AP_UnixApp::main(char const*, int, char**) (szAppName=0x400710 "abiword", argc=<optimized out>, argv=<optimized out>) at ap_UnixApp.cpp:1301 #16 0x0040050e in main(int, char**) (argc=1, argv=0xbffff764) at ../src/wp/main/gtk/UnixMain.cpp:30 (gdb) list _cogl_gpu_info_init 509 510 void 511 _cogl_gpu_info_init (CoglContext *ctx, 512 CoglGpuInfo *gpu) 513 { 514 CoglGpuInfoStrings strings; 515 int i; 516 517 strings.renderer_string = (const char *) ctx->glGetString (GL_RENDERER); 518 strings.version_string = _cogl_context_get_gl_version (ctx); 519 strings.vendor_string = (const char *) ctx->glGetString (GL_VENDOR); 520 521 /* Determine the driver package */ 522 for (i = 0; ; i++) 523 { 524 const CoglGpuInfoDriverPackageDescription *description = 525 _cogl_gpu_info_driver_packages + i; 526 527 if (description->check_function (&strings, &gpu->driver_package_version)) 528 { 529 gpu->driver_package = description->driver_package; 530 gpu->driver_package_name = description->name; 531 break; 532 } 533 } 534 535 /* Determine the GPU vendor */ 536 for (i = 0; ; i++) 537 { 538 const CoglGpuInfoVendorDescription *description = 539 _cogl_gpu_info_vendors + i; 540 541 if (description->check_function (&strings)) 542 { 543 int j; 544 545 gpu->vendor = description->vendor; 546 gpu->vendor_name = description->name; 547 548 for (j = 0; ; j++) 549 { 550 const CoglGpuInfoArchitectureDescription *architecture = 551 description->architectures + j; 552 553 if (architecture->check_function (&strings)) 554 { 555 gpu->architecture = architecture->architecture; 556 gpu->architecture_name = architecture->name; 557 gpu->architecture_flags = architecture->flags; 558 goto probed; 559 } 560 } 561 } 562 } 563 564 probed: 565 566 COGL_NOTE (WINSYS, "Driver package = %s, vendor = %s, architecture = %s\n", 567 gpu->driver_package_name, 568 gpu->vendor_name, 569 gpu->architecture_name); 570 571 /* Determine the driver bugs */ 572 573 /* In Mesa the glReadPixels implementation is really slow 574 when using the Intel driver. The Intel 575 driver has a fast blit path when reading into a PBO. Reading into 576 a temporary PBO and then memcpying back out to the application's 577 memory is faster than a regular glReadPixels in this case */ 578 if (gpu->vendor == COGL_GPU_INFO_VENDOR_INTEL && 579 gpu->driver_package == COGL_GPU_INFO_DRIVER_PACKAGE_MESA) 580 gpu->driver_bugs |= COGL_GPU_INFO_DRIVER_BUG_MESA_46631_SLOW_READ_PIXELS; 581 } (gdb) print description->check_function $3 = (CoglBool (*)(const CoglGpuInfoStrings *)) 0xb667d340 <check_intel_vendor> (gdb) list check_intel_vendor 138 139 static CoglBool 140 check_intel_vendor (const CoglGpuInfoStrings *strings) 141 { 142 return match_phrase (strings->renderer_string, "Intel(R)"); 143 } (gdb) list cogl-driver-gles.c:244 240 241 static CoglBool 242 _cogl_driver_update_features (CoglContext *context, 243 CoglError **error) 244 { 245 unsigned long private_features 246 [COGL_FLAGS_N_LONGS_FOR_SIZE (COGL_N_PRIVATE_FEATURES)] = { 0 }; 247 CoglFeatureFlags flags = 0; 248 char **gl_extensions; 249 int gl_major, gl_minor; 250 int i; 251 252 /* We have to special case getting the pointer to the glGetString 253 function because we need to use it to determine what functions we 254 can expect */ 255 context->glGetString = 256 (void *) _cogl_renderer_get_proc_address (context->display->renderer, 257 "glGetString", 258 TRUE); 259 260 gl_extensions = _cogl_context_get_gl_extensions (context); 261 262 if (G_UNLIKELY (COGL_DEBUG_ENABLED (COGL_DEBUG_WINSYS))) 263 { 264 char *all_extensions = g_strjoinv (" ", gl_extensions); 265 266 COGL_NOTE (WINSYS, 267 "Checking features\n" 268 " GL_VENDOR: %s\n" 269 " GL_RENDERER: %s\n" 270 " GL_VERSION: %s\n" 271 " GL_EXTENSIONS: %s", 272 context->glGetString (GL_VENDOR), 273 context->glGetString (GL_RENDERER), 274 _cogl_context_get_gl_version (context), 275 all_extensions); 276 277 g_free (all_extensions); 278 } 279 280 context->glsl_major = 1; 281 context->glsl_minor = 0; 282 context->glsl_version_to_use = 100; 283 284 _cogl_gpu_info_init (context, &context->gpu); 285 286 if (!_cogl_get_gl_version (context, &gl_major, &gl_minor)) 287 { 288 gl_major = 1; 289 gl_minor = 1; 290 } 291 292 _cogl_feature_check_ext_functions (context, 293 gl_major, 294 gl_minor, 295 gl_extensions); 296 297 #ifdef HAVE_COGL_GLES 298 if (context->driver == COGL_DRIVER_GLES1) 299 { 300 int max_clip_planes; 301 GE( context, glGetIntegerv (GL_MAX_CLIP_PLANES, &max_clip_planes) ); 302 if (max_clip_planes >= 4) 303 COGL_FLAGS_SET (private_features, 304 COGL_PRIVATE_FEATURE_FOUR_CLIP_PLANES, TRUE); 305 } 306 #endif 307 308 if (context->driver == COGL_DRIVER_GLES2) 309 { 310 flags |= COGL_FEATURE_SHADERS_GLSL | COGL_FEATURE_OFFSCREEN; 311 /* Note GLES 2 core doesn't support mipmaps for npot textures or 312 * repeat modes other than CLAMP_TO_EDGE. */ 313 flags |= COGL_FEATURE_TEXTURE_NPOT_BASIC; 314 flags |= COGL_FEATURE_DEPTH_RANGE; 315 COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_GLSL, TRUE); 316 COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_OFFSCREEN, TRUE); 317 COGL_FLAGS_SET (context->features, 318 COGL_FEATURE_ID_TEXTURE_NPOT_BASIC, TRUE); 319 COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_DEPTH_RANGE, TRUE); 320 COGL_FLAGS_SET (context->features, 321 COGL_FEATURE_ID_MIRRORED_REPEAT, TRUE); 322 COGL_FLAGS_SET (context->features, 323 COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE, TRUE); 324 325 COGL_FLAGS_SET (private_features, 326 COGL_PRIVATE_FEATURE_BLEND_CONSTANT, TRUE); 327 } 328 else if (context->driver == COGL_DRIVER_GLES1) 329 { 330 COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_GL_FIXED, TRUE); 331 COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_ALPHA_TEST, TRUE); 332 COGL_FLAGS_SET (private_features, 333 COGL_PRIVATE_FEATURE_BUILTIN_POINT_SIZE_UNIFORM, TRUE); 334 } 335 336 COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_VBOS, TRUE); 337 COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_ANY_GL, TRUE); 338 COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_ALPHA_TEXTURES, TRUE); 339 340 /* Both GLES 1.1 and GLES 2.0 support point sprites in core */ 341 flags |= COGL_FEATURE_POINT_SPRITE; 342 COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_POINT_SPRITE, TRUE); 343 344 if (context->glGenRenderbuffers) 345 { 346 flags |= COGL_FEATURE_OFFSCREEN; 347 COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_OFFSCREEN, TRUE); 348 } 349 350 if (context->glBlitFramebuffer) 351 COGL_FLAGS_SET (private_features, 352 COGL_PRIVATE_FEATURE_OFFSCREEN_BLIT, TRUE); 353 354 if (_cogl_check_extension ("GL_OES_element_index_uint", gl_extensions)) 355 { 356 flags |= COGL_FEATURE_UNSIGNED_INT_INDICES; 357 COGL_FLAGS_SET (context->features, 358 COGL_FEATURE_ID_UNSIGNED_INT_INDICES, TRUE); 359 } 360 361 if (_cogl_check_extension ("GL_OES_depth_texture", gl_extensions)) 362 { 363 flags |= COGL_FEATURE_DEPTH_TEXTURE; 364 COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_DEPTH_TEXTURE, TRUE); 365 } 366 367 if (_cogl_check_extension ("GL_OES_texture_npot", gl_extensions)) 368 { 369 flags |= (COGL_FEATURE_TEXTURE_NPOT | 370 COGL_FEATURE_TEXTURE_NPOT_BASIC | 371 COGL_FEATURE_TEXTURE_NPOT_MIPMAP | 372 COGL_FEATURE_TEXTURE_NPOT_REPEAT); 373 COGL_FLAGS_SET (context->features, 374 COGL_FEATURE_ID_TEXTURE_NPOT, TRUE); 375 COGL_FLAGS_SET (context->features, 376 COGL_FEATURE_ID_TEXTURE_NPOT_BASIC, TRUE); 377 COGL_FLAGS_SET (context->features, 378 COGL_FEATURE_ID_TEXTURE_NPOT_MIPMAP, TRUE); 379 COGL_FLAGS_SET (context->features, 380 COGL_FEATURE_ID_TEXTURE_NPOT_REPEAT, TRUE); 381 } 382 else if (_cogl_check_extension ("GL_IMG_texture_npot", gl_extensions)) 383 { 384 flags |= (COGL_FEATURE_TEXTURE_NPOT_BASIC | 385 COGL_FEATURE_TEXTURE_NPOT_MIPMAP); 386 COGL_FLAGS_SET (context->features, 387 COGL_FEATURE_ID_TEXTURE_NPOT_BASIC, TRUE); 388 COGL_FLAGS_SET (context->features, 389 COGL_FEATURE_ID_TEXTURE_NPOT_MIPMAP, TRUE); 390 } 391 392 if (context->glTexImage3D) 393 { 394 flags |= COGL_FEATURE_TEXTURE_3D; 395 COGL_FLAGS_SET (context->features, COGL_FEATURE_ID_TEXTURE_3D, TRUE); 396 } 397 398 if (context->glMapBuffer) 399 { 400 /* The GL_OES_mapbuffer extension doesn't support mapping for 401 read */ 402 flags |= COGL_FEATURE_MAP_BUFFER_FOR_WRITE; 403 COGL_FLAGS_SET (context->features, 404 COGL_FEATURE_ID_MAP_BUFFER_FOR_WRITE, TRUE); 405 } 406 407 if (context->glMapBufferRange) 408 { 409 /* MapBufferRange in ES3+ does support mapping for read */ 410 flags |= (COGL_FEATURE_MAP_BUFFER_FOR_WRITE | 411 COGL_FEATURE_MAP_BUFFER_FOR_READ); 412 COGL_FLAGS_SET(context->features, 413 COGL_FEATURE_ID_MAP_BUFFER_FOR_WRITE, TRUE); 414 COGL_FLAGS_SET(context->features, 415 COGL_FEATURE_ID_MAP_BUFFER_FOR_READ, TRUE); 416 } 417 418 if (context->glEGLImageTargetTexture2D) 419 COGL_FLAGS_SET (private_features, 420 COGL_PRIVATE_FEATURE_TEXTURE_2D_FROM_EGL_IMAGE, TRUE); 421 422 if (_cogl_check_extension ("GL_OES_packed_depth_stencil", gl_extensions)) 423 COGL_FLAGS_SET (private_features, 424 COGL_PRIVATE_FEATURE_OES_PACKED_DEPTH_STENCIL, TRUE); 425 426 if (_cogl_check_extension ("GL_EXT_texture_format_BGRA8888", gl_extensions)) 427 COGL_FLAGS_SET (private_features, 428 COGL_PRIVATE_FEATURE_TEXTURE_FORMAT_BGRA8888, TRUE); 429 430 if (_cogl_check_extension ("GL_EXT_unpack_subimage", gl_extensions)) 431 COGL_FLAGS_SET (private_features, 432 COGL_PRIVATE_FEATURE_UNPACK_SUBIMAGE, TRUE); 433 434 /* A nameless vendor implemented the extension, but got the case wrong 435 * per the spec. */ 436 if (_cogl_check_extension ("GL_OES_EGL_sync", gl_extensions) || 437 _cogl_check_extension ("GL_OES_egl_sync", gl_extensions)) 438 COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_OES_EGL_SYNC, TRUE); 439 440 if (_cogl_check_extension ("GL_EXT_texture_rg", gl_extensions)) 441 COGL_FLAGS_SET (context->features, 442 COGL_FEATURE_ID_TEXTURE_RG, 443 TRUE); 444 445 /* Cache features */ 446 for (i = 0; i < G_N_ELEMENTS (private_features); i++) 447 context->private_features[i] |= private_features[i]; 448 context->feature_flags |= flags; 449 450 g_strfreev (gl_extensions); 451 452 return TRUE; 453 } (gdb) print gl_extensions $5 = (char **) 0x0 (gdb) list cogl-winsys-stub.c:107 104 105 static CoglBool 106 _cogl_winsys_context_init (CoglContext *context, CoglError **error) 107 { 108 context->winsys = &_cogl_winsys_stub_dummy_ptr; 109 110 if (!_cogl_context_update_features (context, error)) 111 return FALSE; 112 113 memset (context->winsys_features, 0, sizeof (context->winsys_features)); 114 115 return TRUE; 116 } 0004 ################# ################# ################# (abiword:9955): GLib-CRITICAL **: g_strsplit: assertion 'string != NULL' failed (abiword:9955): Clutter-CRITICAL **: Unable to initialize Clutter: Initialisierung des Clutter-Backends nicht möglich: Keine Treiber verfügbar. ** (abiword:9955): WARNING **: clutter failed -3, get a life. [New Thread 0xaa3ccb40 (LWP 10010)] [New Thread 0xaabcdb40 (LWP 10011)] Thread 1 "abiword" received signal SIGSEGV, Segmentation fault. _cogl_renderer_handle_native_event (renderer=0x0, event=0xbfffeffc) at cogl-renderer.c:730 730 cogl-renderer.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt #0 0xb667f91d in _cogl_renderer_handle_native_event (renderer=0x0, event=0xbfffeffc) at cogl-renderer.c:730 #1 0xb66c432c in cogl_xlib_renderer_handle_event (renderer=0x0, event=0xbfffeffc) at cogl-xlib-renderer.c:594 #2 0xb6773c9f in cogl_gdk_filter (xevent=0xbfffeffc, event=0x8d7ed8, data=0x482c18) at gdk/clutter-backend-gdk.c:146 #3 0xb5b2dd64 in gdk_event_apply_filters (xevent=xevent@entry=0xbfffeffc, event=event@entry=0x8d7ed8, window=window@entry=0x0) at ././gdk/x11/gdkeventsource.c:79 #4 0xb5b2e09d in gdk_event_source_translate_event (xevent=0xbfffeffc, event_source=0x468820) at ././gdk/x11/gdkeventsource.c:198 #5 0xb5b2e09d in _gdk_x11_display_queue_events (display=0x4510d0 [GdkX11Display]) at ././gdk/x11/gdkeventsource.c:341 #6 0xb5af5c97 in gdk_display_get_event (display=0x4510d0 [GdkX11Display]) at ././gdk/gdkdisplay.c:438 #7 0xb5b2ddf5 in gdk_event_source_dispatch (source=0x468820, callback=0x0, user_data=0x0) at ././gdk/x11/gdkeventsource.c:363 #8 0xb55b94e9 in g_main_dispatch (context=0x467050) at ././glib/gmain.c:3203 #9 0xb55b94e9 in g_main_context_dispatch (context=0x467050) at ././glib/gmain.c:3856 #10 0xb55b9789 in g_main_context_iterate (context=context@entry=0x467050, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ././glib/gmain.c:3929 #11 0xb55b9854 in g_main_context_iteration (context=0x467050, may_block=1) at ././glib/gmain.c:3990 #12 0xb5dfc4c0 in gtk_main_iteration () at ././gtk/gtkmain.c:1413 #13 0xb7d704bd in XAP_UnixFrameImpl::_nullUpdate() const (this=0x56f638) at xap_UnixFrameImpl.cpp:1317 #14 0xb7b6e241 in XAP_Frame::nullUpdate() const (this=0x59c4f8) at ../../../../src/af/xap/xp/xap_Frame.h:125 #15 0xb7b6e241 in PD_Document::_importFile(_GsfInput*, int, bool, bool, bool, char const*) (this=0x953d90, input=0x9570f0 [GsfInputMemory], ieft=0, markClean=true, bImportStylesFirst=false, bIsImportFile=true, impProps=0x0) at pd_Document.cpp:785 #16 0xb7b6ea6d in PD_Document::_importFile(char const*, int, bool, bool, bool, char const*) (this=0x953d90, szFilename=0x8d1b78 "file:///usr/share/abiword-3.0/templates/normal.awt-de_DE", ieft=0, markClean=true, bImportStylesFirst=false, bIsImportFile=true, impProps=0x0) at pd_Document.cpp:739 #17 0xb7b6ead2 in PD_Document::importFile(char const*, int, bool, bool, char const*) (this=0x953d90, szFilename=0x8d1b78 "file:///usr/share/abiword-3.0/templates/normal.awt-de_DE", ieft=0, markClean=true, bImportStylesFirst=false, impProps=0x0) at pd_Document.cpp:716 #18 0xb7b6ce7f in PD_Document::newDocument() (this=<optimized out>) at pd_Document.cpp:1072 #19 0xb7c89f02 in AP_Frame::_loadDocument(char const*, int, bool) (this=<optimized out>, szFilename=<optimized out>, ieft=<optimized out>, createNew=false) at ap_Frame.cpp:208 #20 0xb7c8a136 in AP_Frame::loadDocument(char const*, int, bool) (this=<optimized out>, szFilename=<optimized out>, ieft=<optimized out>, createNew=false) at ap_Frame.cpp:475 #21 0xb7c88907 in AP_Frame::loadDocument(char const*, int) (this=0x59c4f8, szFilename=0x0, ieft=0) at ap_Frame.cpp:513 #22 0xb7c34667 in AP_App::openCmdLineFiles(AP_Args const*) (this=0x42b1d8, args=0xbffff5d4) at ap_App.cpp:70 #23 0xb7a75c36 in AP_UnixApp::main(char const*, int, char**) (szAppName=<optimized out>, argc=<optimized out>, argv=<optimized out>) at ap_UnixApp.cpp:1383 #24 0x0040050e in main(int, char**) (argc=1, argv=0xbffff764) at ../src/wp/main/gtk/UnixMain.cpp:30 ################# ################# ################# # Buster/testing apt update apt install mc htop systemd-coredump xserver-xorg xdm openbox xterm mesa-utils dpkg-dev devscripts strace gdb valgrind nvidia-driver abiword abiword-dbgsym libabiword-3.0-dbgsym libclutter-gtk-1.0-0-dbgsym libclutter-1.0-0-dbgsym libglib2.0-0-dbgsym libcogl20-dbgsym libgtk-3-0-dbgsym systemctl start xdm export DISPLAY=:0 benutzer@debian:~$ abiword pci id for fd 5: 1234:1111, driver (null) libEGL warning: DRI3: No driver found libEGL warning: DRI2: failed to authenticate (abiword:27439): Gtk-CRITICAL **: 13:03:19.758: gtk_render_background: assertion 'GTK_IS_STYLE_CONTEXT (context)' failed (abiword:27439): Gtk-CRITICAL **: 13:03:19.758: gtk_render_frame: assertion 'GTK_IS_STYLE_CONTEXT (context)' failed