Control: tags 920179 + upstream patch

Dear Maintainer,
I tried to have a look at this and think I found something.

This seems to be a case of implicit function declaration
defaulting to int as return type but real function returns
a pointer. Therefore an invalid pointer gets later used.

This shows also up as gcc warnings:

    warning: implicit declaration of function ‘dngettext’

Attached patch includes libintl.h before usage of dngettext.
That solves the crash but creates some new warnings
about redefinition of gettext and dgettext, where I cannot
say if that has a negative consequence.

Kind regards,
Bernhard




Thread 1 "klavaro" hit Breakpoint 2, 0x0000555555565032 in main_window_init () 
at main.c:317
317             tmp = dngettext (PACKAGE, "Dictation mode (depends on this 
speech synthesizer: %s)",
1: x/i $pc
=> 0x555555565032 <main+1266>:  callq  0x555555563590 <dngettext@plt>
2: /x $eax = 0x0
3: /x $rdi = 0x55555558928b
(gdb) nexti
[Thread 0x7ffff25b3700 (LWP 5290) exited]
319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x555555565037 <main+1271>:  lea    0x2406e(%rip),%rsi        # 
0x5555555890ac
2: /x $eax = 0xf3732349
3: /x $rdi = 0x7ffff703fa60
(gdb) 
0x000055555556503e      319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x55555556503e <main+1278>:  movslq %eax,%rdi
2: /x $eax = 0xf3732349
3: /x $rdi = 0x7ffff703fa60
(gdb) 
0x0000555555565041      319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x555555565041 <main+1281>:  xor    %eax,%eax
2: /x $eax = 0xf3732349
3: /x $rdi = 0xfffffffff3732349                                                 
   <<<<<<<<< $rdi should equal here $eax
(gdb) 
0x0000555555565043      319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x555555565043 <main+1283>:  callq  0x5555555632f0 <g_strdup_printf@plt>
2: /x $eax = 0x0
3: /x $rdi = 0xfffffffff3732349
(gdb) 
[Thread 0x7ffff2db4700 (LWP 5289) exited]

Thread 1 "klavaro" received signal SIGSEGV, Segmentation fault.
__strchrnul_sse2 () at ../sysdeps/x86_64/multiarch/../strchr.S:32
32              movdqu  (%rdi), %xmm0
1: x/i $pc
=> 0x7ffff6f1af33 <__strchrnul_sse2+35>:        movdqu (%rdi),%xmm0
2: /x $eax = 0x349
3: /x $rdi = 0xfffffffff3732349
(gdb) bt
#0  0x00007ffff6f1af33 in __strchrnul_sse2 () at 
../sysdeps/x86_64/multiarch/../strchr.S:32
#1  0x00007ffff6ed2c49 in __find_specmb (format=0xfffffffff3732349 <error: 
Cannot access memory at address 0xfffffffff3732349>) at printf-parse.h:108
#2  0x00007ffff6ed2c49 in _IO_vfprintf_internal (s=s@entry=0x7fffffffe1e0, 
format=format@entry=0xfffffffff3732349 <error: Cannot access memory at address 
0xfffffffff3732349>, ap=ap@entry=0x7fffffffe350) at vfprintf.c:1315
#3  0x00007ffff6f8d408 in __GI___vasprintf_chk 
(result_ptr=result_ptr@entry=0x7fffffffe330, flags=flags@entry=1, 
format=0xfffffffff3732349 <error: Cannot access memory at address 
0xfffffffff3732349>, format@entry=0x7fffffffe330 "", args=0x7fffffffe350) at 
vasprintf_chk.c:66
#4  0x00007ffff730bef9 in vasprintf (__ap=<optimized out>, __fmt=<optimized 
out>, __ptr=0x7fffffffe330) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:213
#5  0x00007ffff730bef9 in g_vasprintf (string=string@entry=0x7fffffffe330, 
format=<optimized out>, args=args@entry=0x7fffffffe350) at 
../../../glib/gprintf.c:330
#6  0x00007ffff72e555d in g_strdup_vprintf (format=<optimized out>, 
args=args@entry=0x7fffffffe350) at ../../../glib/gstrfuncs.c:514
#7  0x00007ffff72e5619 in g_strdup_printf (format=<optimized out>) at 
../../../glib/gstrfuncs.c:540
#8  0x0000555555565048 in main_window_init () at main.c:319
#9  0x0000555555565048 in main (argc=<optimized out>, argv=<optimized out>) at 
main.c:475
Description: Include libintl.h to avoid default int for dngettext

Bug-Debian: https://bugs.debian.org/920179
Forwarded: no
Last-Update: 2019-01-23

--- klavaro-3.03.orig/src/main.c
+++ klavaro-3.03/src/main.c
@@ -18,6 +18,7 @@
 #include <pango/pango-attributes.h>
 #include <gtk/gtk.h>
 #include <curl/curl.h>
+#include <libintl.h>
 
 #include "auxiliar.h"
 #include "callbacks.h"
--- klavaro-3.03.orig/src/tutor.c
+++ klavaro-3.03/src/tutor.c
@@ -23,6 +23,7 @@
 #include <glib.h>
 #include <glib/gstdio.h>
 #include <gtk/gtk.h>
+#include <libintl.h>
 
 #include "main.h"
 #include "auxiliar.h"
# Buster amd64 qemu VM 2019-01-23

apt update
apt dist-upgrade


apt install xserver-xorg lightdm openbox klavaro
apt install systemd-coredump gdb valgrind binutils mc klavaro-dbgsym 
libglib2.0-0-dbgsym
apt install dpkg-dev devscripts
apt build-dep klavaro


systemctl start lightdm



mkdir source/klavaro/orig -p
cd    source/klavaro/orig
apt source klavaro
cd


mkdir source/glibc/orig -p
cd    source/glibc/orig
apt source glibc
cd




export DISPLAY=:0
klavaro


##############


benutzer@debian:~$ klavaro
Speicherzugriffsfehler (Speicherabzug geschrieben)


root@debian:~# coredumpctl list
TIME                            PID   UID   GID SIG COREFILE  EXE
Wed 2019-01-23 15:35:13 CET    7166  1000  1000  11 present   /usr/bin/klavaro

root@debian:~# coredumpctl gdb 7166
           PID: 7166 (klavaro)
           UID: 1000 (benutzer)
           GID: 1000 (benutzer)
        Signal: 11 (SEGV)
     Timestamp: Wed 2019-01-23 15:35:13 CET (34s ago)
  Command Line: klavaro
    Executable: /usr/bin/klavaro
 Control Group: /user.slice/user-1000.slice/session-3.scope
          Unit: session-3.scope
         Slice: user-1000.slice
       Session: 3
     Owner UID: 1000 (benutzer)
       Boot ID: 4536e4087de34cddb6098000fc6a0da8
    Machine ID: 32f43b50ac8c4b21941bc0b02f8e7811
      Hostname: debian
       Storage: 
/var/lib/systemd/coredump/core.klavaro.1000.4536e4087de34cddb6098000fc6a0da8.7166.1548254113000000.lz4
       Message: Process 7166 (klavaro) of user 1000 dumped core.
                
                Stack trace of thread 7166:
                #0  0x00007fabbd127f33 __strchrnul_sse2 (libc.so.6)
                #1  0x00007fabbd0dfc49 __find_specmb (libc.so.6)
                #2  0x00007fabbd19a408 __GI___vasprintf_chk (libc.so.6)
                #3  0x00007fabbd518ef9 g_vasprintf (libglib-2.0.so.0)
                #4  0x00007fabbd4f255d g_strdup_vprintf (libglib-2.0.so.0)
                #5  0x00007fabbd4f2619 g_strdup_printf (libglib-2.0.so.0)
                #6  0x000055e14cf25048 main (klavaro)
                #7  0x00007fabbd0b409b __libc_start_main (libc.so.6)
                #8  0x000055e14cf2557a _start (klavaro)
                
                Stack trace of thread 7167:
                #0  0x00007fabbd17eb39 __GI___poll (libc.so.6)
                #1  0x00007fabbd4d3016 n/a (libglib-2.0.so.0)
                #2  0x00007fabbd4d313c g_main_context_iteration 
(libglib-2.0.so.0)
                #3  0x00007fabbd4d3181 n/a (libglib-2.0.so.0)
                #4  0x00007fabbd4fb325 n/a (libglib-2.0.so.0)
                #5  0x00007fabbd258fa3 start_thread (libpthread.so.0)
                #6  0x00007fabbd1897ef __clone (libc.so.6)
                
                Stack trace of thread 7170:
                #0  0x00007fabbd17eb39 __GI___poll (libc.so.6)
                #1  0x00007fabbd4d3016 n/a (libglib-2.0.so.0)
                #2  0x00007fabbd4d33a2 g_main_loop_run (libglib-2.0.so.0)
                #3  0x00007fabbd6ffd26 n/a (libgio-2.0.so.0)
                #4  0x00007fabbd4fb325 n/a (libglib-2.0.so.0)
                #5  0x00007fabbd258fa3 start_thread (libpthread.so.0)
                #6  0x00007fabbd1897ef __clone (libc.so.6)
                
                Stack trace of thread 7168:
                #0  0x00007fabbd184269 syscall (libc.so.6)
                #1  0x00007fabbd51cf1a g_cond_wait_until (libglib-2.0.so.0)
                #2  0x00007fabbd4a5051 n/a (libglib-2.0.so.0)
                #3  0x00007fabbd4fbe02 n/a (libglib-2.0.so.0)
                #4  0x00007fabbd4fb325 n/a (libglib-2.0.so.0)
                #5  0x00007fabbd258fa3 start_thread (libpthread.so.0)
                #6  0x00007fabbd1897ef __clone (libc.so.6)
                
                Stack trace of thread 7169:
                #0  0x00007fabbd184269 syscall (libc.so.6)
                #1  0x00007fabbd51cf1a g_cond_wait_until (libglib-2.0.so.0)
                #2  0x00007fabbd4a5051 n/a (libglib-2.0.so.0)
                #3  0x00007fabbd4fbe02 n/a (libglib-2.0.so.0)
                #4  0x00007fabbd4fb325 n/a (libglib-2.0.so.0)
                #5  0x00007fabbd258fa3 start_thread (libpthread.so.0)
                #6  0x00007fabbd1897ef __clone (libc.so.6)

GNU gdb (Debian 8.2-1) 8.2
Copyright (C) 2018 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-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/klavaro...(no debugging symbols found)...done.
[New LWP 7166]
[New LWP 7167]
[New LWP 7170]
[New LWP 7168]
[New LWP 7169]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `klavaro'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __strchrnul_sse2 () at ../sysdeps/x86_64/multiarch/../strchr.S:32
32      ../sysdeps/x86_64/multiarch/../strchr.S: Datei oder Verzeichnis nicht 
gefunden.
[Current thread is 1 (Thread 0x7fabb9cbdcc0 (LWP 7166))]
(gdb) set width 0
(gdb) set pagination off
(gdb) bt
#0  __strchrnul_sse2 () at ../sysdeps/x86_64/multiarch/../strchr.S:32
#1  0x00007fabbd0dfc49 in __find_specmb (format=0xffffffffb993c349 <error: 
Cannot access memory at address 0xffffffffb993c349>) at printf-parse.h:108
#2  _IO_vfprintf_internal (s=s@entry=0x7ffdcf795bd0, 
format=format@entry=0xffffffffb993c349 <error: Cannot access memory at address 
0xffffffffb993c349>, ap=ap@entry=0x7ffdcf795d40) at vfprintf.c:1315
#3  0x00007fabbd19a408 in __GI___vasprintf_chk (result_ptr=0x7ffdcf795d20, 
flags=1, format=0xffffffffb993c349 <error: Cannot access memory at address 
0xffffffffb993c349>, args=0x7ffdcf795d40) at vasprintf_chk.c:66
#4  0x00007fabbd518ef9 in g_vasprintf () from 
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fabbd4f255d in g_strdup_vprintf () from 
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007fabbd4f2619 in g_strdup_printf () from 
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x000055e14cf25048 in main ()


(gdb) bt
#0  __strchrnul_sse2 () at ../sysdeps/x86_64/multiarch/../strchr.S:32
#1  0x00007fabbd0dfc49 in __find_specmb (format=0xffffffffb993c349 <error: 
Cannot access memory at address 0xffffffffb993c349>) at printf-parse.h:108
#2  _IO_vfprintf_internal (s=s@entry=0x7ffdcf795bd0, 
format=format@entry=0xffffffffb993c349 <error: Cannot access memory at address 
0xffffffffb993c349>, ap=ap@entry=0x7ffdcf795d40) at vfprintf.c:1315
#3  0x00007fabbd19a408 in __GI___vasprintf_chk 
(result_ptr=result_ptr@entry=0x7ffdcf795d20, flags=flags@entry=1, 
format=0xffffffffb993c349 <error: Cannot access memory at address 
0xffffffffb993c349>, format@entry=0x7ffdcf795d20 "", args=0x7ffdcf795d40) at 
vasprintf_chk.c:66
#4  0x00007fabbd518ef9 in vasprintf (__ap=<optimized out>, __fmt=<optimized 
out>, __ptr=0x7ffdcf795d20) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:213
#5  g_vasprintf (string=string@entry=0x7ffdcf795d20, format=<optimized out>, 
args=args@entry=0x7ffdcf795d40) at ../../../glib/gprintf.c:330
#6  0x00007fabbd4f255d in g_strdup_vprintf (format=<optimized out>, 
args=args@entry=0x7ffdcf795d40) at ../../../glib/gstrfuncs.c:514
#7  0x00007fabbd4f2619 in g_strdup_printf (format=<optimized out>) at 
../../../glib/gstrfuncs.c:540
#8  0x000055e14cf25048 in main_window_init () at main.c:319
#9  main (argc=<optimized out>, argv=<optimized out>) at main.c:475



(gdb) list 286,330
286     
/*******************************************************************************
287      * Initialize some interface widgets
288      */
289     static void
290     main_window_init ()
291     {
292             gchar *tmp;
293             gchar *ttip;
294             PangoAttrList *palist;
295
296             /* Workaround to make GtkBuilder translate all text, on Windows 
:-(
297              */
298             if (! UNIX_OK)
299                     main_gtkbuilder_translation_workaround ();
300
301             /* Set the language
302              */
303             trans_set_combo_language ();
304
305             /* Set keyboard
306              */
307             keyb_create_virtual_keys ();
308             hints_init ();
309
310             /* Set if speech is enabled
311              */
312             callbacks_shield_set (TRUE);
313             if (!main_preferences_exist ("interface", "speech"))
314                     main_preferences_set_boolean ("interface", "speech", 
TRUE);
315             gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (get_wg 
("checkbutton_speech")),
316                             main_preferences_get_boolean ("interface", 
"speech"));
317             tmp = dngettext (PACKAGE, "Dictation mode (depends on this 
speech synthesizer: %s)",
318                             "Dictation mode (depends on one of these speech 
synthesizers: %s)", 1);
319             ttip = g_strdup_printf (tmp, "Espeak");                         
                        <<<<<<<<<<<<<<<
320             gtk_widget_set_tooltip_text (get_wg ("checkbutton_speech"), 
ttip);
321             callbacks_shield_set (FALSE);
322
323
324             /* Set the initial keyboard to use
325              */
326             keyb_set_combo_kbd ("combobox_kbd_country", 
"combobox_kbd_variant");
327             keyb_set_combo_kbd ("combobox_keyboard_country", 
"combobox_keyboard_variant");
328
329             /* Set window icons
330              */


(gdb) list main
415     
/*******************************************************************************
416      * Main program
417      */
418     int
419     main (int argc, char *argv[])
420     {
421             gchar *tmp;
422             gboolean success = FALSE;
423             gboolean show_version = FALSE;
424             GOptionContext *opct;
425             GOptionEntry option[] = {
426                     {"version", 'v', 0, G_OPTION_ARG_NONE, &show_version, 
"Versio", NULL},
427                     {NULL}
428             };
429             GError *gerr;
430
431             /* Localization
432              */
433     #ifdef ENABLE_NLS
434             bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
435             bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
436             textdomain (GETTEXT_PACKAGE);
437     #endif
438
439             /* Command-line arguments
440              */
441             opct = g_option_context_new ("");
442             g_option_context_set_translation_domain (opct, GETTEXT_PACKAGE);
443             g_option_context_add_main_entries (opct, option, 
GETTEXT_PACKAGE);
444             g_option_context_add_group (opct, gtk_get_option_group (TRUE));
445             g_setenv ("NO_AT_BRIDGE", "1", FALSE); /* to eliminate annoying 
accessibility bus warning */
446             g_option_context_parse (opct, &argc, &argv, &gerr);
447
448             if (show_version)
449             {
450                     g_printf (VERSION"\n");
451                     return 0;
452             }
453
454             curl_ok = curl_global_init (CURL_GLOBAL_WIN32) == CURLE_OK ? 
TRUE : FALSE;
455
456             main_initialize_global_variables ();    /* Here the locale is 
got. */
457
458             /* Create all the interface stuff
459              */
460             gui = gtk_builder_new ();
461             gtk_builder_set_translation_domain (gui, NULL);
462
463             tmp = g_build_filename (main_path_data (), "klavaro.glade", 
NULL);
464             if (g_file_test (tmp, G_FILE_TEST_IS_REGULAR))
465                     success = gtk_builder_add_from_file (gui, tmp, NULL);
466             else
467                     g_error ("GUI file not found. Aborting.\n %s", tmp);
468             if (!success)
469                     g_error ("GUI file found but couldn't create the GUI. 
Aborting.");
470             if (!g_module_supported ())
471                     g_error ("GUI created but can't connect signals.");
472             g_free (tmp);
473             gtk_builder_connect_signals (gui, NULL);
474
475             main_window_init ();    /* and initialize its parameters */     
                                            <<<<<<<<<<<<<<<
476
477             gtk_main ();
478
479             return 0;
480     }






#################




benutzer@debian:~$ valgrind klavaro 
==21941== Memcheck, a memory error detector
==21941== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==21941== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==21941== Command: klavaro
==21941== 
** Message: 20:15:16.548: Empty accuracy log: 
/home/benutzer/.local/share/klavaro/accuracy.log_qwertz_de
** Message: 20:15:16.574: Empty proficiency log: 
/home/benutzer/.local/share/klavaro/proficiency.log_qwertz_de

Adiaux!
==21941== 
==21941== HEAP SUMMARY:
==21941==     in use at exit: 7,938,365 bytes in 93,721 blocks
==21941==   total heap usage: 520,030 allocs, 426,309 frees, 31,714,857 bytes 
allocated
==21941== 
==21941== LEAK SUMMARY:
==21941==    definitely lost: 36,096 bytes in 74 blocks
==21941==    indirectly lost: 85,619 bytes in 3,468 blocks
==21941==      possibly lost: 10,088 bytes in 243 blocks
==21941==    still reachable: 6,158,466 bytes in 78,857 blocks
==21941==                       of which reachable via heuristic:
==21941==                         length64           : 12,000 bytes in 174 
blocks
==21941==                         newarray           : 2,288 bytes in 63 blocks
==21941==         suppressed: 0 bytes in 0 blocks
==21941== Rerun with --leak-check=full to see details of leaked memory
==21941== 
==21941== For counts of detected and suppressed errors, rerun with: -v
==21941== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)





#################





gdb -q \
    -ex 'set width 0' \
    -ex 'set pagination off' \
    -ex 'directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src' \
    -ex 'directory /home/benutzer/source/glibc/orig/glibc-2.28/intl' \
    -ex 'display/i $pc' \
    -ex 'b dngettext' \
    -ex 'maint set target-non-stop off' \
    -ex 'run' \
    -ex 'record' \
    -ex 'cont' \
    --args klavaro

benutzer@debian:~$ gdb -q \
>     -ex 'set width 0' \
>     -ex 'set pagination off' \
>     -ex 'directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src' \
>     -ex 'directory /home/benutzer/source/glibc/orig/glibc-2.28/intl' \
>     -ex 'display/i $pc' \
>     -ex 'b dngettext' \
>     -ex 'maint set target-non-stop off' \
>     -ex 'run' \
>     -ex 'record' \
>     -ex 'cont' \
>     --args klavaro
Reading symbols from klavaro...Reading symbols from 
/usr/lib/debug/.build-id/33/f76701badabdac469e407b2e0a6a48afaf5131.debug...done.
done.
Source directories searched: 
/home/benutzer/source/klavaro/orig/klavaro-3.03/src:$cdir:$cwd
Source directories searched: 
/home/benutzer/source/glibc/orig/glibc-2.28/intl:/home/benutzer/source/klavaro/orig/klavaro-3.03/src:$cdir:$cwd
1: x/i $pc
<error: No registers.>
Breakpoint 1 at 0xf590
Starting program: /usr/bin/klavaro 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff35b7700 (LWP 21717)]
[New Thread 0x7ffff2db6700 (LWP 21718)]
[New Thread 0x7ffff25b5700 (LWP 21719)]
[New Thread 0x7ffff1db4700 (LWP 21720)]

Thread 1 "klavaro" hit Breakpoint 1, __dngettext (domainname=0x55555558928b 
"klavaro", msgid1=0x555555589410 "Dictation mode (depends on this speech 
synthesizer: %s)", msgid2=0x5555555893c8 "Dictation mode (depends on one of 
these speech synthesizers: %s)", n=1) at dngettext.c:51
51        return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
1: x/i $pc
=> 0x7ffff6eb7340 <__dngettext>:        mov    $0x5,%r8d
Continuing.
[Thread 0x7ffff25b5700 (LWP 21719) exited]

Thread 1 "klavaro" received signal SIGSEGV, Segmentation fault.
__strchrnul_sse2 () at ../sysdeps/x86_64/multiarch/../strchr.S:32
32              movdqu  (%rdi), %xmm0
1: x/i $pc
=> 0x7ffff6f1cf33 <__strchrnul_sse2+35>:        movdqu (%rdi),%xmm0
(gdb) print/x $rdi
$1 = 0xfffffffff3734349
(gdb) display/x $rdi
2: /x $rdi = 0xfffffffff3734349
(gdb) reverse-stepi
32              movdqu  (%rdi), %xmm0
...
(gdb) stepi
0x00007ffff6ed4c2f      1304    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed4c2f <_IO_vfprintf_internal+143>:  mov    -0x4c8(%rbp),%rdi
2: /x $rdi = 0x7fffffffe1e0
(gdb) x/1xg $rbp-0x4c8
0x7fffffffdd08: 0xfffffffff3734349
(gdb) set can-use-hw-watchpoints 0
(gdb) watch *(long*)0x7fffffffdd08
Watchpoint 3: *(long*)0x7fffffffdd08
(gdb) reverse-cont
Continuing.

Thread 1 "klavaro" hit Watchpoint 3: *(long*)0x7fffffffdd08

Old value = -210549943
New value = 0
0x00007ffff6ed4bba in _IO_vfprintf_internal (s=s@entry=0x7fffffffe1e0, 
format=format@entry=0xfffffffff3734349 <error: Cannot access memory at address 
0xfffffffff3734349>, ap=ap@entry=0x7fffffffe350) at vfprintf.c:1239
1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed4bba <_IO_vfprintf_internal+26>:   mov    %rsi,-0x4c8(%rbp)
2: /x $rdi = 0x7fffffffe1e0
(gdb) print/x $rsi
$3 = 0xfffffffff3734349
(gdb) reverse-stepi
0x00007ffff6ed4bb3      1239    in vfprintf.c
...
(gdb) 
0x00007ffff6f8f400      66      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8f400 <__GI___vasprintf_chk+192>:   mov    %r13,%rsi
3: /x $rsi = 0x555555a17010
(gdb) print/x $r13
$5 = 0x7fffffffe350
(gdb) print/x $rsi
$6 = 0x555555a17010
(gdb) stepi
0x00007ffff6f8f403      66      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8f403 <__GI___vasprintf_chk+195>:   callq  0x7ffff6ed4ba0 
<_IO_vfprintf_internal>
3: /x $rsi = 0xfffffffff3734349
(gdb) print/x $r13
$7 = 0x7fffffffe350
(gdb) print/x $rsi
$8 = 0xfffffffff3734349


??? what ?


(gdb) info thread
  Id   Target Id                                   Frame 
* 1    Thread 0x7ffff3ab2cc0 (LWP 21713) "klavaro" 0x00007ffff6f8f403 in 
__GI___vasprintf_chk (result_ptr=result_ptr@entry=0x7fffffffe330, 
flags=flags@entry=1, format=0x7fffffffe350 "\b", format@entry=0x7fffffffe330 
"", args=0xfbad8000) at vasprintf_chk.c:66
  2    Thread 0x7ffff35b7700 (LWP 21717) "gmain"   0x00007ffff6f73b39 in 
__GI___poll (fds=0x55555595baf0, nfds=2, timeout=-1) at 
../sysdeps/unix/sysv/linux/poll.c:29
  3    Thread 0x7ffff2db6700 (LWP 21718) "pool"    syscall () at 
../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  5    Thread 0x7ffff1db4700 (LWP 21720) "gdbus"   0x00007ffff6f73b39 in 
__GI___poll (fds=0x7fffe4013920, nfds=2, timeout=-1) at 
../sysdeps/unix/sysv/linux/poll.c:29




##############




0xfffffffff3734349
  ff ff ff ff f3 73 43 49
                 s  C  I
"ICs"




##############



gdb -q \
    -ex 'set width 0' \
    -ex 'set pagination off' \
    -ex 'directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src' \
    -ex 'directory /home/benutzer/source/glibc/orig/glibc-2.28/intl' \
    -ex 'display/i $pc' \
    -ex 'b dngettext' \
    -ex 'maint set target-non-stop off' \
    -ex 'run' \
    -ex 'record' \
    -ex 'cont' \
    -ex 'set can-use-hw-watchpoints 0' \
    --args klavaro



(gdb) stepi
0x00007ffff6f8f400      66      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8f400 <__GI___vasprintf_chk+192>:   mov    %r13,%rsi
3: /x $rsi = 0x555555a16d40
4: /x $r13 = 0x7fffffffe350
(gdb) stepi
0x00007ffff6f8f403      66      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8f403 <__GI___vasprintf_chk+195>:   callq  0x7ffff6ed4ba0 
<_IO_vfprintf_internal>
3: /x $rsi = 0xfffffffff3734349
4: /x $r13 = 0x7fffffffe350


(gdb) x/20xb 0x7ffff6f8f400
0x7ffff6f8f400 <__GI___vasprintf_chk+192>:      0x4c    0x89    0xee    0xe8    
0x98    0x57    0xf4    0xff
0x7ffff6f8f408 <__GI___vasprintf_chk+200>:      0x89    0xc5    0x85    0xc0    
0x0f    0x88    0xae    0x00

(gdb) disassemble 0x7ffff6f8f400,0x7ffff6f8f420
Dump of assembler code from 0x7ffff6f8f400 to 0x7ffff6f8f420:
   0x00007ffff6f8f400 <__GI___vasprintf_chk+192>:       mov    %r13,%rsi
=> 0x00007ffff6f8f403 <__GI___vasprintf_chk+195>:       callq  0x7ffff6ed4ba0 
<_IO_vfprintf_internal>
   0x00007ffff6f8f408 <__GI___vasprintf_chk+200>:       mov    %eax,%ebp

   
(gdb) info reg
rax            0x7ffff6f09bc0      140737336351680
rbx            0x555555a16d40      93824997223744
rcx            0x0                 0
rdx            0x7fffffffe350      140737488347984
rsi            0xfffffffff3734349  -210549943
rdi            0x7fffffffe1e0      140737488347616
rbp            0x7fffffffe1e0      0x7fffffffe1e0
rsp            0x7fffffffe1e0      0x7fffffffe1e0
r8             0x0                 0
r9             0x555555a16e70      93824997224048
r10            0x5555555c2010      93824992682000
r11            0x70                112
r12            0x7fffffffe330      140737488347952
r13            0x7fffffffe350      140737488347984
r14            0xfbad8000          4222451712
r15            0x1                 1
rip            0x7ffff6f8f403      0x7ffff6f8f403 <__GI___vasprintf_chk+195>
eflags         0x206               [ PF IF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0




https://c9x.me/x86/html/file_module_x86_id_176.html
x86 Instruction Set Reference
MOV
Move
Opcode  Mnemonic        Description
89 /r   MOV r/m16,r16   Move r16 to r/m16.
89 /r   MOV r/m32,r32   Move r32 to r/m32.

http://ref.x86asm.net/coder64.html
Prefix 0x4C: REX.WR

https://wiki.osdev.org/X86-64_Instruction_Encoding#Usage

 Encoding

The layout is as follows:

  7                           0
+---+---+---+---+---+---+---+---+
| 0   1   0   0 | W | R | X | B |
+---+---+---+---+---+---+---+---+
W       1 bit   When 1, a 64-bit operand size is used. Otherwise, when 0, the 
default operand size is used (which is 32-bit for most but not all 
instructions, see this table).
R       1 bit   This 1-bit value is an extension to the MODRM.reg field. See 
Registers.

| 0   1   0   0 | 1 | 1 | 0 | 0 |    == 0b 0100 1100  == 0x4c


MODRM.reg       3 bits  This field can have one of two values:

    A 3-bit opcode extension, which is used by some instructions but has no 
further meaning other than distinguishing the instruction from other 
instructions.
    A 3-bit register reference, which can be used as the source or the 
destination of an instruction (depending on the instruction).
        The referenced register depends on the operand-size of the instruction 
and the instruction itself.
        See Registers for the values to use for each of the registers.
        The REX.R, VEX.~R or XOP.~R field can extend this field with 1 
most-significant bit to 4 bits total. 

????





(gdb) info all-registers
rax            0x7ffff6f09bc0      140737336351680
rbx            0x555555a16d40      93824997223744
rcx            0x0                 0
rdx            0x7fffffffe350      140737488347984
rsi            0xfffffffff3734349  -210549943
rdi            0x7fffffffe1e0      140737488347616
rbp            0x7fffffffe1e0      0x7fffffffe1e0
rsp            0x7fffffffe1e0      0x7fffffffe1e0
r8             0x0                 0
r9             0x555555a16e70      93824997224048
r10            0x5555555c2010      93824992682000
r11            0x70                112
r12            0x7fffffffe330      140737488347952
r13            0x7fffffffe350      140737488347984
r14            0xfbad8000          4222451712
r15            0x1                 1
rip            0x7ffff6f8f403      0x7ffff6f8f403 <__GI___vasprintf_chk+195>
eflags         0x206               [ PF IF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0
st0            0                   (raw 0x00000000000000000000)
st1            0                   (raw 0x00000000000000000000)
st2            0                   (raw 0x00000000000000000000)
st3            0                   (raw 0x00000000000000000000)
st4            0                   (raw 0x00000000000000000000)
st5            0                   (raw 0x00000000000000000000)
st6            0                   (raw 0x00000000000000000000)
st7            0                   (raw 0x00000000000000000000)
fctrl          0x37f               895
fstat          0x0                 0
ftag           0xffff              65535
fiseg          0x0                 0
fioff          0x0                 0
foseg          0x0                 0
fooff          0x0                 0
fop            0x0                 0
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 
0x0}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0xff, 0xff, 0x0 <repeats 14 times>}, v8_int16 = {0xffff, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xffff, 0x0, 0x0, 0x0}, v2_int64 = 
{0xffff, 0x0}, uint128 = 0xffff}
xmm2           {v4_float = {0xffffffff, 0xffffffff, 0x0, 0xffffffff}, v2_double 
= {0x7fffffffffffffff, 0x7fffffffffffffff}, v16_int8 = {0x44, 0x69, 0x67, 0x69, 
0x74, 0x73, 0x0, 0x67, 0x74, 0x6b, 0x33, 0x30, 0x2d, 0x70, 0x72, 0x6f}, 
v8_int16 = {0x6944, 0x6967, 0x7374, 0x6700, 0x6b74, 0x3033, 0x702d, 0x6f72}, 
v4_int32 = {0x69676944, 0x67007374, 0x30336b74, 0x6f72702d}, v2_int64 = 
{0x6700737469676944, 0x6f72702d30336b74}, uint128 = 
0x6f72702d30336b746700737469676944}
xmm3           {v4_float = {0xffffffff, 0x0, 0xffffffff, 0xffffffff}, v2_double 
= {0x0, 0x7fffffffffffffff}, v16_int8 = {0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 
0x73, 0x20, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x20, 0x73}, v8_int16 = 
{0x6e6f, 0x7420, 0x6968, 0x2073, 0x7073, 0x6565, 0x6863, 0x7320}, v4_int32 = 
{0x74206e6f, 0x20736968, 0x65657073, 0x73206863}, v2_int64 = 
{0x2073696874206e6f, 0x7320686365657073}, uint128 = 
0x73206863656570732073696874206e6f}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 
0x8000000000000000}, v16_int8 = {0x0 <repeats 11 times>, 0xff, 0xff, 0xff, 
0xff, 0xff}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0xff00, 0xffff, 0xffff}, 
v4_int32 = {0x0, 0x0, 0xff000000, 0xffffffff}, v2_int64 = {0x0, 
0xffffffffff000000}, uint128 = 0xffffffffff0000000000000000000000}
xmm5           {v4_float = {0x3, 0x3, 0x3, 0x3}, v2_double = {0x20, 0x20}, 
v16_int8 = {0x40 <repeats 16 times>}, v8_int16 = {0x4040, 0x4040, 0x4040, 
0x4040, 0x4040, 0x4040, 0x4040, 0x4040}, v4_int32 = {0x40404040, 0x40404040, 
0x40404040, 0x40404040}, v2_int64 = {0x4040404040404040, 0x4040404040404040}, 
uint128 = 0x40404040404040404040404040404040}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x7fffffffffffffff, 0x7fffffffffffffff}, v16_int8 = {0x5b <repeats 16 times>}, 
v8_int16 = {0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b, 0x5b5b}, 
v4_int32 = {0x5b5b5b5b, 0x5b5b5b5b, 0x5b5b5b5b, 0x5b5b5b5b}, v2_int64 = 
{0x5b5b5b5b5b5b5b5b, 0x5b5b5b5b5b5b5b5b}, uint128 = 
0x5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x20 <repeats 16 times>}, v8_int16 = {0x2020, 0x2020, 0x2020, 
0x2020, 0x2020, 0x2020, 0x2020, 0x2020}, v4_int32 = {0x20202020, 0x20202020, 
0x20202020, 0x20202020}, v2_int64 = {0x2020202020202020, 0x2020202020202020}, 
uint128 = 0x20202020202020202020202020202020}
xmm8           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x20, 0x0 <repeats 15 times>}, v8_int16 = {0x20, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x20, 0x0, 0x0, 0x0}, v2_int64 = {0x20, 0x0}, 
uint128 = 0x20}
xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 
0x8000000000000000}, v16_int8 = {0xff, 0xff, 0x0 <repeats 11 times>, 0xff, 0x0, 
0xff}, v8_int16 = {0xffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff00, 0xff00}, v4_int32 = 
{0xffff, 0x0, 0x0, 0xff00ff00}, v2_int64 = {0xffff, 0xff00ff0000000000}, 
uint128 = 0xff00ff0000000000000000000000ffff}
xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x20, 0x0 <repeats 15 times>}, v8_int16 = {0x20, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x20, 0x0, 0x0, 0x0}, v2_int64 = {0x20, 0x0}, 
uint128 = 0x20}
xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = 
{0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, 
v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = 
{0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 
0xffffffffffffffffffffffffffffffff}
xmm12          {v4_float = {0x0, 0x1, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x53, 0x4e, 0x47, 0x39, 0x1d, 0xe5, 0xe4, 0x3f, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x4e53, 0x3947, 0xe51d, 0x3fe4, 0x0, 0x0, 0x0, 
0x0}, v4_int32 = {0x39474e53, 0x3fe4e51d, 0x0, 0x0}, v2_int64 = 
{0x3fe4e51d39474e53, 0x0}, uint128 = 0x3fe4e51d39474e53}
xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 
0x0}
xmm14          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 
0x0}
xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, 
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 
0x0}
mxcsr          0x1fa0              [ PE IM DM ZM OM UM PM ]






####################





benutzer@debian:~$ objdump --disassemble /lib/x86_64-linux-gnu/libc.so.6 | grep 
vasprintf_chk -A100       

000000000010a340 <__vasprintf_chk@@GLIBC_2.8>:
  10a340:       41 57                   push   %r15

  10a3fd:       4c 89 f2                mov    %r14,%rdx
  10a400:       4c 89 ee                mov    %r13,%rsi
  10a403:       e8 98 57 f4 ff          callq  4fba0 <_IO_vfprintf@@GLIBC_2.2.5>
  10a408:       89 c5                   mov    %eax,%ebp






###################


gdb -q \
    -ex 'set width 0' \
    -ex 'set pagination off' \
    -ex 'directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src' \
    -ex 'directory /home/benutzer/source/glibc/orig/glibc-2.28/intl' \
    -ex 'display/i $pc' \
    -ex 'b dngettext' \
    -ex 'run' \
    -ex 'dele 1' \
    -ex 'print __vasprintf_chk +192' \
    -ex 'b *$1' \
    -ex 'display/x $r13' \
    -ex 'display/x $rsi' \
    -ex 'cont' \
    --args klavaro



benutzer@debian:~$ gdb -q \
>     -ex 'set width 0' \
>     -ex 'set pagination off' \
>     -ex 'directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src' \
>     -ex 'directory /home/benutzer/source/glibc/orig/glibc-2.28/intl' \
>     -ex 'display/i $pc' \
>     -ex 'b dngettext' \
>     -ex 'run' \
>     -ex 'dele 1' \
>     -ex 'print __vasprintf_chk +192' \
>     -ex 'b *$1' \
>     -ex 'display/x $r13' \
>     -ex 'display/x $rsi' \
>     -ex 'cont' \
>     --args klavaro
Reading symbols from klavaro...Reading symbols from 
/usr/lib/debug/.build-id/33/f76701badabdac469e407b2e0a6a48afaf5131.debug...done.
done.
Source directories searched: 
/home/benutzer/source/klavaro/orig/klavaro-3.03/src:$cdir:$cwd
Source directories searched: 
/home/benutzer/source/glibc/orig/glibc-2.28/intl:/home/benutzer/source/klavaro/orig/klavaro-3.03/src:$cdir:$cwd
1: x/i $pc
<error: No registers.>
Breakpoint 1 at 0xf590
Starting program: /usr/bin/klavaro 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff35b5700 (LWP 31088)]
[New Thread 0x7ffff2db4700 (LWP 31089)]
[New Thread 0x7ffff25b3700 (LWP 31090)]
[New Thread 0x7ffff1db2700 (LWP 31091)]

Thread 1 "klavaro" hit Breakpoint 1, __dngettext (domainname=0x55555558928b 
"klavaro", msgid1=0x555555589410 "Dictation mode (depends on this speech 
synthesizer: %s)", msgid2=0x5555555893c8 "Dictation mode (depends on one of 
these speech synthesizers: %s)", n=1) at dngettext.c:51
51        return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
1: x/i $pc
=> 0x7ffff6eb5340 <__dngettext>:        mov    $0x5,%r8d
$1 = (int (*)(char **, int, const char *, struct __va_list_tag *)) 
0x7ffff6f8d400 <__GI___vasprintf_chk+192>
Breakpoint 2 at 0x7ffff6f8d400: file vasprintf_chk.c, line 66.
2: /x $r13 = 0x7fffffffe5c0
3: /x $rsi = 0x555555589410
Continuing.

Thread 1 "klavaro" hit Breakpoint 2, 0x00007ffff6f8d400 in __GI___vasprintf_chk 
(result_ptr=result_ptr@entry=0x7fffffffe330, flags=flags@entry=1, 
format=0xfffffffff3732349 <error: Cannot access memory at address 
0xfffffffff3732349>, format@entry=0x7fffffffe330 "", args=0x7fffffffe350) at 
vasprintf_chk.c:66
66      vasprintf_chk.c: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0x7ffff6f8d400 <__GI___vasprintf_chk+192>:   mov    %r13,%rsi
2: /x $r13 = 0xfffffffff3732349
3: /x $rsi = 0x555555cc44a0
(gdb) stepi
[Thread 0x7ffff25b3700 (LWP 31090) exited]
0x00007ffff6f8d403      66      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d403 <__GI___vasprintf_chk+195>:   callq  0x7ffff6ed2ba0 
<_IO_vfprintf_internal>
2: /x $r13 = 0xfffffffff3732349
3: /x $rsi = 0xfffffffff3732349
(gdb) 



--> ok, there is really that value before in $r13





#####################




benutzer@debian:~$ gdb -q \
>     -ex 'set width 0' \
>     -ex 'set pagination off' \
>     -ex 'directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src' \
>     -ex 'directory /home/benutzer/source/glibc/orig/glibc-2.28/intl' \
>     -ex 'display/i $pc' \
>     -ex 'b dngettext' \
>     -ex 'maint set target-non-stop off' \
>     -ex 'run' \
>     -ex 'record' \
>     -ex 'cont' \
>     -ex 'set can-use-hw-watchpoints 0' \
>     --args klavaro
Reading symbols from klavaro...Reading symbols from 
/usr/lib/debug/.build-id/33/f76701badabdac469e407b2e0a6a48afaf5131.debug...done.
done.
Source directories searched: 
/home/benutzer/source/klavaro/orig/klavaro-3.03/src:$cdir:$cwd
Source directories searched: 
/home/benutzer/source/glibc/orig/glibc-2.28/intl:/home/benutzer/source/klavaro/orig/klavaro-3.03/src:$cdir:$cwd
1: x/i $pc
<error: No registers.>
Breakpoint 1 at 0xf590
Starting program: /usr/bin/klavaro 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff35b5700 (LWP 31098)]
[New Thread 0x7ffff2db4700 (LWP 31099)]
[New Thread 0x7ffff25b3700 (LWP 31100)]
[New Thread 0x7ffff1db2700 (LWP 31101)]

Thread 1 "klavaro" hit Breakpoint 1, __dngettext (domainname=0x55555558928b 
"klavaro", msgid1=0x555555589410 "Dictation mode (depends on this speech 
synthesizer: %s)", msgid2=0x5555555893c8 "Dictation mode (depends on one of 
these speech synthesizers: %s)", n=1) at dngettext.c:51
51        return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
1: x/i $pc
=> 0x7ffff6eb5340 <__dngettext>:        mov    $0x5,%r8d
Continuing.
[Thread 0x7ffff2db4700 (LWP 31099) exited]

Thread 1 "klavaro" received signal SIGSEGV, Segmentation fault.
__strchrnul_sse2 () at ../sysdeps/x86_64/multiarch/../strchr.S:32
32              movdqu  (%rdi), %xmm0
1: x/i $pc
=> 0x7ffff6f1af33 <__strchrnul_sse2+35>:        movdqu (%rdi),%xmm0
(gdb) display/x $rdi
2: /x $rdi = 0xfffffffff3732349
(gdb) reverse-stepi
32              movdqu  (%rdi), %xmm0
1: x/i $pc
=> 0x7ffff6f1af33 <__strchrnul_sse2+35>:        movdqu (%rdi),%xmm0
2: /x $rdi = 0xfffffffff3732349
(gdb) 
31              jg      L(cross_page)
1: x/i $pc
=> 0x7ffff6f1af2d <__strchrnul_sse2+29>:        jg     0x7ffff6f1b080 
<__strchrnul_sse2+368>
2: /x $rdi = 0xfffffffff3732349
(gdb) 
30              pshufd  $0, %xmm1, %xmm1
1: x/i $pc
=> 0x7ffff6f1af28 <__strchrnul_sse2+24>:        pshufd $0x0,%xmm1,%xmm1
2: /x $rdi = 0xfffffffff3732349
(gdb) 
29              punpcklwd %xmm1, %xmm1
1: x/i $pc
=> 0x7ffff6f1af24 <__strchrnul_sse2+20>:        punpcklwd %xmm1,%xmm1
2: /x $rdi = 0xfffffffff3732349
(gdb) 
28              cmpl    $4032, %eax
1: x/i $pc
=> 0x7ffff6f1af1f <__strchrnul_sse2+15>:        cmp    $0xfc0,%eax
2: /x $rdi = 0xfffffffff3732349
(gdb) 
27              punpcklbw %xmm1, %xmm1
1: x/i $pc
=> 0x7ffff6f1af1b <__strchrnul_sse2+11>:        punpcklbw %xmm1,%xmm1
2: /x $rdi = 0xfffffffff3732349
(gdb) 
26              andl    $4095, %eax
1: x/i $pc
=> 0x7ffff6f1af16 <__strchrnul_sse2+6>: and    $0xfff,%eax
2: /x $rdi = 0xfffffffff3732349
(gdb) 
25              movl    %edi, %eax
1: x/i $pc
=> 0x7ffff6f1af14 <__strchrnul_sse2+4>: mov    %edi,%eax
2: /x $rdi = 0xfffffffff3732349
(gdb) 
24              movd    %esi, %xmm1
1: x/i $pc
=> 0x7ffff6f1af10 <__strchrnul_sse2>:   movd   %esi,%xmm1
2: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ea5070 in *ABS*+0x8aad0@plt () from /lib/x86_64-linux-gnu/libc.so.6
1: x/i $pc
=> 0x7ffff6ea5070 <*ABS*+0x8aad0@plt>:  jmpq   *0x198fd2(%rip)        # 
0x7ffff703e048 <*ABS*@got.plt>
2: /x $rdi = 0xfffffffff3732349
(gdb) 
__find_specmb (format=0xfffffffff3732349 <error: Cannot access memory at 
address 0xfffffffff3732349>) at printf-parse.h:108
108     printf-parse.h: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0x7ffff6ed2c44 <_IO_vfprintf_internal+164>:  callq  0x7ffff6ea5070 
<*ABS*+0x8aad0@plt>
2: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2c3d in _IO_vfprintf_internal (s=s@entry=0x7fffffffe1e0, 
format=format@entry=0xfffffffff3732349 <error: Cannot access memory at address 
0xfffffffff3732349>, ap=ap@entry=0x7fffffffe350) at vfprintf.c:1304
1304    vfprintf.c: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0x7ffff6ed2c3d <_IO_vfprintf_internal+157>:  mov    %rax,-0x438(%rbp)
2: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2c36      1304    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2c36 <_IO_vfprintf_internal+150>:  movups %xmm1,-0x448(%rbp)
2: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2c2f in __find_specmb (format=<optimized out>) at vfprintf.c:1304
1304    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2c2f <_IO_vfprintf_internal+143>:  mov    -0x4c8(%rbp),%rdi
2: /x $rdi = 0x7fffffffe1e0
(gdb) x/1xg $rbp-0x4c8
0x7fffffffdd08: 0xfffffffff3732349
(gdb) watch *(long*)0x7fffffffdd08
Watchpoint 2: *(long*)0x7fffffffdd08
(gdb) reverse-cont
Continuing.

Thread 1 "klavaro" hit Watchpoint 2: *(long*)0x7fffffffdd08

Old value = -210558135
New value = 0
0x00007ffff6ed2bba in _IO_vfprintf_internal (s=s@entry=0x7fffffffe1e0, 
format=format@entry=0xfffffffff3732349 <error: Cannot access memory at address 
0xfffffffff3732349>, ap=ap@entry=0x7fffffffe350) at vfprintf.c:1239
1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2bba <_IO_vfprintf_internal+26>:   mov    %rsi,-0x4c8(%rbp)
2: /x $rdi = 0x7fffffffe1e0
(gdb) undisp 2
(gdb) display/x $rsi
3: /x $rsi = 0xfffffffff3732349
(gdb) reverse-stepi
0x00007ffff6ed2bb3      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2bb3 <_IO_vfprintf_internal+19>:   sub    $0x548,%rsp
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2bb0      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2bb0 <_IO_vfprintf_internal+16>:   mov    %rdi,%rbx
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2baf      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2baf <_IO_vfprintf_internal+15>:   push   %rbx
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2bad      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2bad <_IO_vfprintf_internal+13>:   push   %r12
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2baa      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2baa <_IO_vfprintf_internal+10>:   mov    %rdx,%r13
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2ba8      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2ba8 <_IO_vfprintf_internal+8>:    push   %r13
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2ba6      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2ba6 <_IO_vfprintf_internal+6>:    push   %r14
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2ba4      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2ba4 <_IO_vfprintf_internal+4>:    push   %r15
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6ed2ba1      1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2ba1 <_IO_vfprintf_internal+1>:    mov    %rsp,%rbp
3: /x $rsi = 0xfffffffff3732349
(gdb) 
1239    in vfprintf.c
1: x/i $pc
=> 0x7ffff6ed2ba0 <_IO_vfprintf_internal>:      push   %rbp
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d403 in __GI___vasprintf_chk 
(result_ptr=result_ptr@entry=0x7fffffffe330, flags=flags@entry=1, 
format=0x7fffffffe350 "\b", format@entry=0x7fffffffe330 "", args=0xfbad8000) at 
vasprintf_chk.c:66
66      vasprintf_chk.c: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0x7ffff6f8d403 <__GI___vasprintf_chk+195>:   callq  0x7ffff6ed2ba0 
<_IO_vfprintf_internal>
3: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d400      66      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d400 <__GI___vasprintf_chk+192>:   mov    %r13,%rsi
3: /x $rsi = 0x555555a21640
(gdb) print/x $r13
$1 = 0x7fffffffe350
(gdb) undisp 3
(gdb) reverse-stepi
0x00007ffff6f8d3fd      66      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3fd <__GI___vasprintf_chk+189>:   mov    %r14,%rdx
(gdb) 
66      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3fa <__GI___vasprintf_chk+186>:   mov    %rbp,%rdi
(gdb) 
64      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3f5 <__GI___vasprintf_chk+181>:   orl    $0x4,0x74(%rsp)
(gdb) 
0x00007ffff6f8d3f3      63      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3f3 <__GI___vasprintf_chk+179>:   jle    0x7ffff6f8d3fa 
<__GI___vasprintf_chk+186>
(gdb) 
63      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3f0 <__GI___vasprintf_chk+176>:   test   %r15d,%r15d
(gdb) 
0x00007ffff6f8d3e8      59      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3e8 <__GI___vasprintf_chk+168>:   mov    %rax,0xe8(%rsp)
(gdb) 
59      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3e1 <__GI___vasprintf_chk+161>:   mov    0xb0bc0(%rip),%rax       
 # 0x7ffff703dfa8
(gdb) 
58      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3d9 <__GI___vasprintf_chk+153>:   mov    %rax,0xe0(%rsp)
(gdb) 
0x00007ffff6f8d3d5      57      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3d5 <__GI___vasprintf_chk+149>:   andl   $0xfffffffe,(%rsp)
(gdb) 
57      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d3ce <__GI___vasprintf_chk+142>:   mov    0xb0a5b(%rip),%rax       
 # 0x7ffff703de30
(gdb) 
0x00007ffff6f023f7 in _IO_str_init_static_internal (sf=sf@entry=0x7fffffffe1e0, 
ptr=ptr@entry=0x555555a21640 "\240\354\003\367\377\177", size=size@entry=100, 
pstart=pstart@entry=0x555555a21640 "\240\354\003\367\377\177") at strops.c:64
64      strops.c: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0x7ffff6f023f7 <_IO_str_init_static_internal+103>:   retq   
(gdb) 
0x00007ffff6f023f5      64      in strops.c
1: x/i $pc
=> 0x7ffff6f023f5 <_IO_str_init_static_internal+101>:   pop    %r13
(gdb) x/3xg $rsp-8
0x7fffffffe1c8: 0x00007fffffffe330      0xfffffffff3732349
0x7fffffffe1d8: 0x00007ffff6f8d3ce
(gdb) x/1xg $rsp
0x7fffffffe1d0: 0xfffffffff3732349
(gdb) disa 2
(gdb) watch *(long*)0x7fffffffe1d0
Watchpoint 3: *(long*)0x7fffffffe1d0
(gdb) reverse-cont
Continuing.

Thread 1 "klavaro" hit Watchpoint 3: *(long*)0x7fffffffe1d0

Old value = -210558135
New value = 140737488347856
__GI___libc_malloc (bytes=100) at malloc.c:3025
3025    malloc.c: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0x7ffff6f07570 <__GI___libc_malloc>: push   %r13
(gdb) print/x $r13
$2 = 0xfffffffff3732349
(gdb) display/x $r13     
4: /x $r13 = 0xfffffffff3732349
(gdb) reverse-stepi
0x00007ffff6ea5308 in malloc@plt () from /lib/x86_64-linux-gnu/libc.so.6
1: x/i $pc
=> 0x7ffff6ea5308 <malloc@plt>: jmpq   *0x198b22(%rip)        # 0x7ffff703de30
4: /x $r13 = 0xfffffffff3732349
(gdb) 
__GI___vasprintf_chk (result_ptr=0x5f, result_ptr@entry=0x7fffffffe330, 
flags=flags@entry=1, format=0xfffffffff3732349 <error: Cannot access memory at 
address 0xfffffffff3732349>, format@entry=0x7fffffffe330 "", 
args=0x7fffffffe350) at vasprintf_chk.c:48
48      vasprintf_chk.c: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0x7ffff6f8d375 <__GI___vasprintf_chk+53>:    callq  0x7ffff6ea5308 
<malloc@plt>
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d373      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d373 <__GI___vasprintf_chk+51>:    xor    %eax,%eax
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d36b      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d36b <__GI___vasprintf_chk+43>:    mov    %rax,0xf8(%rsp)
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d362      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d362 <__GI___vasprintf_chk+34>:    mov    %fs:0x28,%rax
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d35b      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d35b <__GI___vasprintf_chk+27>:    sub    $0x108,%rsp
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d35a      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d35a <__GI___vasprintf_chk+26>:    push   %rbx
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d359      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d359 <__GI___vasprintf_chk+25>:    push   %rbp
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d354      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d354 <__GI___vasprintf_chk+20>:    mov    $0x64,%edi
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d351      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d351 <__GI___vasprintf_chk+17>:    mov    %rdi,%r12
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d34f      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d34f <__GI___vasprintf_chk+15>:    push   %r12
4: /x $r13 = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d34c      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d34c <__GI___vasprintf_chk+12>:    mov    %rdx,%r13
4: /x $r13 = 0xfffffffff3732349
(gdb) undisp 4
(gdb) print/x $rdx
$3 = 0xfffffffff3732349
(gdb) display/x $rdx     
5: /x $rdx = 0xfffffffff3732349
(gdb) reverse-stepi
0x00007ffff6f8d34a      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d34a <__GI___vasprintf_chk+10>:    push   %r13
5: /x $rdx = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d347      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d347 <__GI___vasprintf_chk+7>:     mov    %rcx,%r14
5: /x $rdx = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d345      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d345 <__GI___vasprintf_chk+5>:     push   %r14
5: /x $rdx = 0xfffffffff3732349
(gdb) 
0x00007ffff6f8d342      37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d342 <__GI___vasprintf_chk+2>:     mov    %esi,%r15d
5: /x $rdx = 0xfffffffff3732349
(gdb) 
37      in vasprintf_chk.c
1: x/i $pc
=> 0x7ffff6f8d340 <__GI___vasprintf_chk>:       push   %r15
5: /x $rdx = 0xfffffffff3732349
(gdb) 
0x00007ffff7293870 in __vasprintf_chk@plt () from 
/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
1: x/i $pc
=> 0x7ffff7293870 <__vasprintf_chk@plt>:        jmpq   *0x101432(%rip)        # 
0x7ffff7394ca8 <__vasprintf_...@got.plt>
5: /x $rdx = 0xfffffffff3732349
(gdb) 
vasprintf (__ap=<optimized out>, __fmt=<optimized out>, __ptr=0x7fffffffe330) 
at /usr/include/x86_64-linux-gnu/bits/stdio2.h:213
warning: Source file is more recent than executable.
213       return __vasprintf_chk (__ptr, __USE_FORTIFY_LEVEL - 1, __fmt, __ap);
1: x/i $pc
=> 0x7ffff730bef4 <g_vasprintf+20>:     callq  0x7ffff7293870 
<__vasprintf_chk@plt>
5: /x $rdx = 0xfffffffff3732349
(gdb) 
0x00007ffff730bef1      320     ../../../glib/gprintf.c: Datei oder Verzeichnis 
nicht gefunden.
1: x/i $pc
=> 0x7ffff730bef1 <g_vasprintf+17>:     mov    %rdi,%rbx
5: /x $rdx = 0xfffffffff3732349
(gdb) 
0x00007ffff730beec      320     in ../../../glib/gprintf.c
1: x/i $pc
=> 0x7ffff730beec <g_vasprintf+12>:     mov    $0x1,%esi
5: /x $rdx = 0xfffffffff3732349
(gdb) 
0x00007ffff730bee9      320     in ../../../glib/gprintf.c
1: x/i $pc
=> 0x7ffff730bee9 <g_vasprintf+9>:      mov    %rsi,%rdx
5: /x $rdx = 0x7fffffffe350
(gdb) undisp 5
(gdb) display/x $rsi
6: /x $rsi = 0xfffffffff3732349
(gdb) reverse-stepi
0x00007ffff730bee6      320     in ../../../glib/gprintf.c
1: x/i $pc
=> 0x7ffff730bee6 <g_vasprintf+6>:      mov    %rdx,%rcx
6: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff730bee4 in g_vasprintf (string=string@entry=0x7fffffffe330, 
format=0xfffffffff3732349 <error: Cannot access memory at address 
0xfffffffff3732349>, args=args@entry=0x7fffffffe350) at 
../../../glib/gprintf.c:320
320     in ../../../glib/gprintf.c
1: x/i $pc
=> 0x7ffff730bee4 <g_vasprintf+4>:      je     0x7ffff730bf10 <g_vasprintf+48>
6: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff730bee1      320     in ../../../glib/gprintf.c
1: x/i $pc
=> 0x7ffff730bee1 <g_vasprintf+1>:      test   %rdi,%rdi
6: /x $rsi = 0xfffffffff3732349
(gdb) 
320     in ../../../glib/gprintf.c
1: x/i $pc
=> 0x7ffff730bee0 <g_vasprintf>:        push   %rbx
6: /x $rsi = 0xfffffffff3732349
(gdb) 
g_strdup_vprintf (format=0xfffffffff3732349 <error: Cannot access memory at 
address 0xfffffffff3732349>, args=args@entry=0x7fffffffe350) at 
../../../glib/gstrfuncs.c:514
514     ../../../glib/gstrfuncs.c: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0x7ffff72e5558 <g_strdup_vprintf+40>:        callq  0x7ffff730bee0 
<g_vasprintf>
6: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5550      512     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5550 <g_strdup_vprintf+32>:        movq   $0x0,(%rsp)
6: /x $rsi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e554d      512     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e554d <g_strdup_vprintf+29>:        mov    %rax,%rsi
6: /x $rsi = 0x7fffffffe350
(gdb) undisp 6
(gdb) display/x $rax
7: /x $rax = 0xfffffffff3732349
(gdb) reverse-stepi
512     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e554a <g_strdup_vprintf+26>:        mov    %rsp,%rdi
7: /x $rax = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5548      511     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5548 <g_strdup_vprintf+24>:        xor    %ecx,%ecx
7: /x $rax = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5543      511     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5543 <g_strdup_vprintf+19>:        mov    %rcx,0x8(%rsp)
7: /x $rax = 0xfffffffff3732349
(gdb) 
0x00007ffff72e553a      511     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e553a <g_strdup_vprintf+10>:        mov    %fs:0x28,%rcx
7: /x $rax = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5537      511     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5537 <g_strdup_vprintf+7>: mov    %rsi,%rdx
7: /x $rax = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5534      511     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5534 <g_strdup_vprintf+4>: mov    %rdi,%rax
7: /x $rax = 0x7fffffffe370
(gdb) undisp 7
(gdb) display/x $rdi
8: /x $rdi = 0xfffffffff3732349
(gdb) reverse-stepi
511     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5530 <g_strdup_vprintf>:   sub    $0x18,%rsp
8: /x $rdi = 0xfffffffff3732349
(gdb) 
g_strdup_printf (format=0xfffffffff3732349 <error: Cannot access memory at 
address 0xfffffffff3732349>) at ../../../glib/gstrfuncs.c:540
540     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5614 <g_strdup_printf+148>:        callq  0x7ffff72e5530 
<g_strdup_vprintf>
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e560f      539     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e560f <g_strdup_printf+143>:        mov    %rax,0x10(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5607      539     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5607 <g_strdup_printf+135>:        movl   $0x30,0x4(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5602      539     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5602 <g_strdup_printf+130>:        lea    0x20(%rsp),%rax
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e55fd      539     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55fd <g_strdup_printf+125>:        mov    %rax,0x8(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e55f6      539     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55f6 <g_strdup_printf+118>:        movl   $0x8,(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e55f3      539     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55f3 <g_strdup_printf+115>:        mov    %rsp,%rsi
8: /x $rdi = 0xfffffffff3732349
(gdb) 
539     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55eb <g_strdup_printf+107>:        lea    0xe0(%rsp),%rax
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e55e9      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55e9 <g_strdup_printf+105>:        xor    %eax,%eax
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e55e4      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55e4 <g_strdup_printf+100>:        mov    %rax,0x18(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e55db      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55db <g_strdup_printf+91>: mov    %fs:0x28,%rax
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e55a2      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55a2 <g_strdup_printf+34>: je     0x7ffff72e55db 
<g_strdup_printf+91>
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e55a0      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e55a0 <g_strdup_printf+32>: test   %al,%al
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e559b      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e559b <g_strdup_printf+27>: mov    %r9,0x48(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5596      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5596 <g_strdup_printf+22>: mov    %r8,0x40(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5591      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5591 <g_strdup_printf+17>: mov    %rcx,0x38(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e558c      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e558c <g_strdup_printf+12>: mov    %rdx,0x30(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00007ffff72e5587      535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5587 <g_strdup_printf+7>:  mov    %rsi,0x28(%rsp)
8: /x $rdi = 0xfffffffff3732349
(gdb) 
535     in ../../../glib/gstrfuncs.c
1: x/i $pc
=> 0x7ffff72e5580 <g_strdup_printf>:    sub    $0xd8,%rsp
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x00005555555632f0 in g_strdup_printf@plt ()
1: x/i $pc
=> 0x5555555632f0 <g_strdup_printf@plt>:        jmpq   *0x35e82(%rip)        # 
0x555555599178 <g_strdup_pri...@got.plt>
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x0000555555565043 in main_window_init () at main.c:319
319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x555555565043 <main+1283>:  callq  0x5555555632f0 <g_strdup_printf@plt>
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x0000555555565041      319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x555555565041 <main+1281>:  xor    %eax,%eax
8: /x $rdi = 0xfffffffff3732349
(gdb) 
0x000055555556503e      319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x55555556503e <main+1278>:  movslq %eax,%rdi
8: /x $rdi = 0x7ffff703fa60
(gdb) print/x $eax
$4 = 0xf3732349
(gdb) bt
#0  0x000055555556503e in main_window_init () at main.c:319
#1  0x000055555556503e in main (argc=<optimized out>, argv=<optimized out>) at 
main.c:475


--> $eax=0xf3732349  gets copied into  $rdi=0xfffffffff3732349


#####################





gdb -q \
    -ex 'set width 0' \
    -ex 'set pagination off' \
    -ex 'directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src' \
    -ex 'directory /home/benutzer/source/glibc/orig/glibc-2.28/intl' \
    -ex 'display/i $pc' \
    -ex 'b main' \
    -ex 'run' \
    -ex 'dele 1' \
    -ex 'print main+1266' \
    -ex 'b *$1' \
    -ex 'display/x $eax' \
    -ex 'display/x $rdi' \
    -ex 'cont' \
    --args klavaro


benutzer@debian:~$ gdb -q \
>     -ex 'set width 0' \
>     -ex 'set pagination off' \
>     -ex 'directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src' \
>     -ex 'directory /home/benutzer/source/glibc/orig/glibc-2.28/intl' \
>     -ex 'display/i $pc' \
>     -ex 'b main' \
>     -ex 'run' \
>     -ex 'dele 1' \
>     -ex 'print main+1266' \
>     -ex 'b *$1' \
>     -ex 'display/x $eax' \
>     -ex 'display/x $rdi' \
>     -ex 'cont' \
>     --args klavaro
Reading symbols from klavaro...Reading symbols from 
/usr/lib/debug/.build-id/33/f76701badabdac469e407b2e0a6a48afaf5131.debug...done.
done.
Source directories searched: 
/home/benutzer/source/klavaro/orig/klavaro-3.03/src:$cdir:$cwd
Source directories searched: 
/home/benutzer/source/glibc/orig/glibc-2.28/intl:/home/benutzer/source/klavaro/orig/klavaro-3.03/src:$cdir:$cwd
1: x/i $pc
<error: No registers.>
Breakpoint 1 at 0x10b40: file main.c, line 420.
Starting program: /usr/bin/klavaro 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, main (argc=1, argv=0x7fffffffe5c8) at main.c:420
420     {
1: x/i $pc
=> 0x555555564b40 <main>:       push   %rbp
$1 = (int (*)(int, char **)) 0x555555565032 <main+1266>
Breakpoint 2 at 0x555555565032: file main.c, line 317.
2: /x $eax = 0x55564b40
3: /x $rdi = 0x1
Continuing.
[New Thread 0x7ffff35b5700 (LWP 5288)]
[New Thread 0x7ffff2db4700 (LWP 5289)]
[New Thread 0x7ffff25b3700 (LWP 5290)]
[New Thread 0x7ffff1db2700 (LWP 5291)]

Thread 1 "klavaro" hit Breakpoint 2, 0x0000555555565032 in main_window_init () 
at main.c:317
317             tmp = dngettext (PACKAGE, "Dictation mode (depends on this 
speech synthesizer: %s)",
1: x/i $pc
=> 0x555555565032 <main+1266>:  callq  0x555555563590 <dngettext@plt>
2: /x $eax = 0x0
3: /x $rdi = 0x55555558928b
(gdb) nexti
[Thread 0x7ffff25b3700 (LWP 5290) exited]
319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x555555565037 <main+1271>:  lea    0x2406e(%rip),%rsi        # 
0x5555555890ac
2: /x $eax = 0xf3732349
3: /x $rdi = 0x7ffff703fa60
(gdb) 
0x000055555556503e      319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x55555556503e <main+1278>:  movslq %eax,%rdi
2: /x $eax = 0xf3732349
3: /x $rdi = 0x7ffff703fa60
(gdb) 
0x0000555555565041      319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x555555565041 <main+1281>:  xor    %eax,%eax
2: /x $eax = 0xf3732349
3: /x $rdi = 0xfffffffff3732349
(gdb) 
0x0000555555565043      319             ttip = g_strdup_printf (tmp, "Espeak");
1: x/i $pc
=> 0x555555565043 <main+1283>:  callq  0x5555555632f0 <g_strdup_printf@plt>
2: /x $eax = 0x0
3: /x $rdi = 0xfffffffff3732349
(gdb) 
[Thread 0x7ffff2db4700 (LWP 5289) exited]

Thread 1 "klavaro" received signal SIGSEGV, Segmentation fault.
__strchrnul_sse2 () at ../sysdeps/x86_64/multiarch/../strchr.S:32
32              movdqu  (%rdi), %xmm0
1: x/i $pc
=> 0x7ffff6f1af33 <__strchrnul_sse2+35>:        movdqu (%rdi),%xmm0
2: /x $eax = 0x349
3: /x $rdi = 0xfffffffff3732349
(gdb) bt
#0  0x00007ffff6f1af33 in __strchrnul_sse2 () at 
../sysdeps/x86_64/multiarch/../strchr.S:32
#1  0x00007ffff6ed2c49 in __find_specmb (format=0xfffffffff3732349 <error: 
Cannot access memory at address 0xfffffffff3732349>) at printf-parse.h:108
#2  0x00007ffff6ed2c49 in _IO_vfprintf_internal (s=s@entry=0x7fffffffe1e0, 
format=format@entry=0xfffffffff3732349 <error: Cannot access memory at address 
0xfffffffff3732349>, ap=ap@entry=0x7fffffffe350) at vfprintf.c:1315
#3  0x00007ffff6f8d408 in __GI___vasprintf_chk 
(result_ptr=result_ptr@entry=0x7fffffffe330, flags=flags@entry=1, 
format=0xfffffffff3732349 <error: Cannot access memory at address 
0xfffffffff3732349>, format@entry=0x7fffffffe330 "", args=0x7fffffffe350) at 
vasprintf_chk.c:66
#4  0x00007ffff730bef9 in vasprintf (__ap=<optimized out>, __fmt=<optimized 
out>, __ptr=0x7fffffffe330) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:213
#5  0x00007ffff730bef9 in g_vasprintf (string=string@entry=0x7fffffffe330, 
format=<optimized out>, args=args@entry=0x7fffffffe350) at 
../../../glib/gprintf.c:330
#6  0x00007ffff72e555d in g_strdup_vprintf (format=<optimized out>, 
args=args@entry=0x7fffffffe350) at ../../../glib/gstrfuncs.c:514
#7  0x00007ffff72e5619 in g_strdup_printf (format=<optimized out>) at 
../../../glib/gstrfuncs.c:540
#8  0x0000555555565048 in main_window_init () at main.c:319
#9  0x0000555555565048 in main (argc=<optimized out>, argv=<optimized out>) at 
main.c:475




#####################






cd source/klavaro
cp orig try1 -a
cd try1/klavaro-3.03
dpkg-buildpackage


gcc -DHAVE_CONFIG_H -I. -I..  -pthread -I/usr/include/gtk-3.0 
-I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include 
-I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo 
-I/usr/include/libdrm -I/usr/include/pango-1.0 -I/usr/include/harfbuzz 
-I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 
-I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount 
-I/usr/include/blkid -I/usr/include/uuid -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include 
-DPACKAGE_DATA_DIR=\""/usr/share"\" 
-DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -Wdate-time -D_FORTIFY_SOURCE=2 
-Wextra -I../gtkdatabox -export-dynamic  -g -O2 
-fdebug-prefix-map=/home/benutzer/source/klavaro/try1/klavaro-3.03=. 
-fstack-protector-strong -Wformat -Werror=format-security -c -o main.o main.c
gcc -DHAVE_CONFIG_H -I. -I..  -pthread -I/usr/include/gtk-3.0 
-I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include 
-I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo 
-I/usr/include/libdrm -I/usr/include/pango-1.0 -I/usr/include/harfbuzz 
-I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 
-I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount 
-I/usr/include/blkid -I/usr/include/uuid -I/usr/include/glib-2.0 
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include 
-DPACKAGE_DATA_DIR=\""/usr/share"\" 
-DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -Wdate-time -D_FORTIFY_SOURCE=2 
-Wextra -I../gtkdatabox -export-dynamic  -g -O2 
-fdebug-prefix-map=/home/benutzer/source/klavaro/try1/klavaro-3.03=. 
-fstack-protector-strong -Wformat -Werror=format-security -c -o tutor.o tutor.c

main.c: In function ‘main_window_init’:
main.c:317:8: warning: implicit declaration of function ‘dngettext’; did you 
mean ‘dcgettext’? [-Wimplicit-function-declaration]
  tmp = dngettext (PACKAGE, "Dictation mode (depends on this speech 
synthesizer: %s)",
        ^~~~~~~~~
        dcgettext
main.c:317:6: warning: assignment to ‘gchar *’ {aka ‘char *’} from ‘int’ makes 
pointer from integer without a cast [-Wint-conversion]
  tmp = dngettext (PACKAGE, "Dictation mode (depends on this speech 
synthesizer: %s)",
      ^

tutor.c:1227:11: warning: implicit declaration of function ‘dngettext’; did you 
mean ‘dcgettext’? [-Wimplicit-function-declaration]
           dngettext (PACKAGE, "minute and", "minutes and", minutes),
           ^~~~~~~~~
           dcgettext




dpkg -i /home/benutzer/source/klavaro/try2/klavaro{,-dbgsym}_3.03-1_amd64.deb






#####################





set width 0
set pagination off
directory /home/benutzer/source/klavaro/orig/klavaro-3.03/src
directory /home/benutzer/source/glibc/orig/glibc-2.28/intl

Reply via email to