https://bugs.kde.org/show_bug.cgi?id=466172
--- Comment #4 from Mike J <do.not.spam.me.kde.bugzi...@gmail.com> --- It was noted that we have Dynatrace OneAgent installed, which preloads one of its libraries by adding it to /etc/ld.so.preload. Although originally thought it might be involved in the problem, we have concluded today that it is not involved, by doing two valgrind runs with gdb attached on hostname -d, with and without the preloaded library. The two run details are shown below with gdb output, in the hope that somebody can spot something untoward that valgrind may be doing. In the first run, /etc/ld.so.preload is set up to dynamically link in a Dynatrace OneAgent library for each program started. In the second run, /etc/ld.so.preload is renamed and ldconfig run to relink runtime shared library cache GDB is attached once valgrind is started. Breakpoints are set on show_name and getaddrinfo, but stepped through from the show_name breakpoint to also watch the dynamic linker behaviour in loading the getaddrinfo call. The initial step from show_name() to getaddrinfo() call shows dynamic linker involved in loading call from glibc library. On first entry into getaddrinfo function, the callstack is OK. On the next step instruction, the callstack becomes corrupted. Continuing on leads to a SIGSEGV, rather than a SIGTRAP, which crashes the program. Both runs are identical in outcome. If the debugger is not attached, a SIGTRAP is instead raised, which crashes the program. Lines with @@@@@@@@@@@@@ below are eye catchers for relevant notes @@@@@@@@@@@@@ First run @@@@@@@@@@@@@ [auser@hostname ~]$ cat /etc/ld.so.preload /$LIB/liboneagentproc.so [auser@hostname ~]$ ldd /usr/bin/hostname linux-vdso.so.1 => (0x00007ffd02d96000) /$LIB/liboneagentproc.so => /lib64/liboneagentproc.so (0x00002af8ce652000) libnsl.so.1 => /usr/lib64/libnsl.so.1 (0x00002af8ce860000) libc.so.6 => /usr/lib64/libc.so.6 (0x00002af8cea7a000) /lib64/ld-linux-x86-64.so.2 (0x00002af8ce42e000) Terminal 1 valgrind --trace-signals=yes -v --log-file=valgrind.out.2 --vgdb=full --vgdb-stop-at=startup hostname -d Terminal 2 cat valgrind.out.2 ==77535== Memcheck, a memory error detector ==77535== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==77535== Using Valgrind-3.20.0-5147d671e4-20221024 and LibVEX; rerun with -h for copyright info ==77535== Command: hostname -d ==77535== Parent PID: 111647 ==77535== --77535-- --77535-- Valgrind options: --77535-- --trace-signals=yes --77535-- -v --77535-- --log-file=valgrind.out.2 --77535-- --vgdb=full --77535-- --vgdb-stop-at=startup --77535-- Contents of /proc/version: --77535-- Linux version 3.10.0-1160.81.1.el7.x86_64 (mockbu...@x86-vm-38.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Nov 24 12:21:22 UTC 2022 --77535-- --77535-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-ssse3-avx-avx2-bmi-f16c-rdrand --77535-- Page sizes: currently 4096, max supported 4096 --77535-- Valgrind library directory: /home/auser/local/libexec/valgrind --77535-- Reading syms from /usr/bin/hostname --77535-- Considering /usr/lib/debug/.build-id/93/633698bd11eeb4bee21a388c191a5656990d8e.debug .. --77535-- .. build-id is valid --77535-- Reading syms from /usr/lib64/ld-2.17.so --77535-- Considering /usr/lib/debug/.build-id/62/c449974331341bb08dcce3859560a22af1e172.debug .. --77535-- .. build-id is valid --77535-- Reading syms from /home/auser/local/libexec/valgrind/memcheck-amd64-linux --77535-- object doesn't have a dynamic symbol table --77535-- Scheduler: using generic scheduler lock implementation. --77535-- Max kernel-supported signal is 64, VG_SIGVGKILL is 64 --77535-- Reading suppressions file: /home/auser/local/libexec/valgrind/default.supp ==77535== (action at startup) vgdb me ... ==77535== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-77535-by-auser-on-hostname.localdomain ==77535== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-77535-by-auser-on-hostname.localdomain ==77535== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-77535-by-auser-on-hostname.localdomain ==77535== ==77535== TO CONTROL THIS PROCESS USING vgdb (which you probably ==77535== don't want to do, unless you know exactly what you're doing, ==77535== or are doing some strange experiment): ==77535== /home/auser/local/libexec/valgrind/../../bin/vgdb --pid=77535 ...command... ==77535== ==77535== TO DEBUG THIS PROCESS USING GDB: start GDB like this ==77535== /path/to/gdb hostname ==77535== and then give GDB the following command ==77535== target remote | /home/auser/local/libexec/valgrind/../../bin/vgdb --pid=77535 ==77535== --pid is optional if only one valgrind process is running ==77535== [auser@hostname ~]$ gdb /usr/bin/hostname Copyright (C) 2013 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-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/bin/hostname...Reading symbols from /usr/lib/debug/usr/bin/hostname.debug...done. done. (gdb) target remote | /home/auser/local/libexec/valgrind/../../bin/vgdb --pid=77535 Remote debugging using | /home/auser/local/libexec/valgrind/../../bin/vgdb --pid=77535 relaying data between gdb and process 77535 Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug/usr/lib64/ld-2.17.so.debug...done. done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 0x0000000004001140 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) break show_name Breakpoint 1 at 0x401930: file hostname.c, line 256. (gdb) break getaddrinfo Breakpoint 2 at 0x401170 (gdb) cont Continuing. Missing separate debuginfo for /lib64/liboneagentproc.so Try: yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/48/81feaea9f4a359f31684c530503b5c629d53af.debug Breakpoint 1, show_name (type=type@entry=DNS) at hostname.c:256 256 { (gdb) n 264 switch(type) (gdb) n 334 memset(&hints, 0, sizeof(struct addrinfo)); (gdb) n 335 hints.ai_socktype = SOCK_DGRAM; (gdb) n 336 hints.ai_flags = AI_CANONNAME; (gdb) n 338 p = localhost(); (gdb) n 339 if ((ret = getaddrinfo(p, NULL, &hints, &res)) != 0) (gdb) s _vgr20160ZU_ldZhlinuxZhx86Zh64ZdsoZd2_strcmp (s1=0x40078f "libc.so.6", s2=0x401cf5a "") at ../shared/vg_replace_strmem.c:941 941 STRCMP(VG_Z_LD_LINUX_X86_64_SO_2, strcmp) (gdb) finish Run till exit from #0 _vgr20160ZU_ldZhlinuxZhx86Zh64ZdsoZd2_strcmp (s1=0x40078f "libc.so.6", s2=0x401cf5a "") at ../shared/vg_replace_strmem.c:941 0x0000000004010a15 in _dl_name_match_p (name=0x40078f "libc.so.6", map=0x4223150) at dl-misc.c:305 305 if (strcmp (name, map->l_name) == 0) Value returned is $1 = 1 (gdb) finish Run till exit from #0 0x0000000004010a15 in _dl_name_match_p (name=0x40078f "libc.so.6", map=0x4223150) at dl-misc.c:305 0x0000000004009826 in do_lookup_x (new_hash=new_hash@entry=2089078220, old_hash=old_hash@entry=0x1ffefff460, result=result@entry=0x1ffefff470, scope=<optimized out>, i=<optimized out>, i@entry=0, flags=flags@entry=1, skip=skip@entry=0x0, undef_map=undef_map@entry=0x4223150) at dl-lookup.c:463 463 && __builtin_expect (_dl_name_match_p (version->filename, map), 0)) Value returned is $2 = 0 (gdb) finish Run till exit from #0 0x0000000004009826 in do_lookup_x (new_hash=new_hash@entry=2089078220, old_hash=old_hash@entry=0x1ffefff460, result=result@entry=0x1ffefff470, scope=<optimized out>, i=<optimized out>, i@entry=0, flags=flags@entry=1, skip=skip@entry=0x0, undef_map=undef_map@entry=0x4223150) at dl-lookup.c:463 _dl_lookup_symbol_x (undef_name=0x400820 "getaddrinfo", undef_map=0x4223150, ref=ref@entry=0x1ffefff528, symbol_scope=0x42234a8, version=0x4023030, type_class=type_class@entry=1, flags=1, skip_map=skip_map@entry=0x0) at dl-lookup.c:742 742 if (res > 0) Value returned is $3 = 1 (gdb) where #0 _dl_lookup_symbol_x (undef_name=0x400820 "getaddrinfo", undef_map=0x4223150, ref=ref@entry=0x1ffefff528, symbol_scope=0x42234a8, version=0x4023030, type_class=type_class@entry=1, flags=1, skip_map=skip_map@entry=0x0) at dl-lookup.c:742 #1 0x000000000400edee in _dl_fixup (l=<optimized out>, reloc_arg=<optimized out>) at ../elf/dl-runtime.c:111 #2 0x00000000040169ea in _dl_runtime_resolve_xsave () at ../sysdeps/x86_64/dl-trampoline.h:131 #3 0x0000000000401b19 in show_name (type=type@entry=DNS) at hostname.c:339 #4 0x00000000004013e4 in main (argc=2, argv=0x1ffefffb88) at hostname.c:550 (gdb) finish Run till exit from #0 _dl_lookup_symbol_x (undef_name=0x400820 "getaddrinfo", undef_map=0x4223150, ref=ref@entry=0x1ffefff528, symbol_scope=0x42234a8, version=0x4023030, type_class=type_class@entry=1, flags=1, skip_map=skip_map@entry=0x0) at dl-lookup.c:742 0x000000000400edee in _dl_fixup (l=<optimized out>, reloc_arg=<optimized out>) at ../elf/dl-runtime.c:111 111 result = _dl_lookup_symbol_x (strtab + sym->st_name, l, &sym, l->l_scope, Value returned is $4 = (struct link_map *) 0x40249a8 (gdb) finish Run till exit from #0 0x000000000400edee in _dl_fixup (l=<optimized out>, reloc_arg=<optimized out>) at ../elf/dl-runtime.c:111 _dl_runtime_resolve_xsave () at ../sysdeps/x86_64/dl-trampoline.h:132 132 mov %RAX_LP, %R11_LP # Save return value Value returned is $5 = 87340512 (gdb) where #0 _dl_runtime_resolve_xsave () at ../sysdeps/x86_64/dl-trampoline.h:132 #1 0x0000000000401b19 in show_name (type=type@entry=DNS) at hostname.c:339 #2 0x00000000004013e4 in main (argc=2, argv=0x1ffefffb88) at hostname.c:550 (gdb) finish Run till exit from #0 _dl_runtime_resolve_xsave () at ../sysdeps/x86_64/dl-trampoline.h:132 Breakpoint 2, __GI_getaddrinfo (name=0x5632040 "hostname.localdomain", service=service@entry=0x0, hints=hints@entry=0x1ffefff920, pai=pai@entry=0x1ffefff918) at ../sysdeps/posix/getaddrinfo.c:2208 2208 { (gdb) where #0 __GI_getaddrinfo (name=0x5632040 "hostname.localdomain", service=service@entry=0x0, hints=hints@entry=0x1ffefff920, pai=pai@entry=0x1ffefff918) at ../sysdeps/posix/getaddrinfo.c:2208 #1 0x0000000000401b19 in show_name (type=type@entry=DNS) at hostname.c:339 #2 0x00000000004013e4 in main (argc=2, argv=0x1ffefffb88) at hostname.c:550 @@@@@@@@@@@@@ Call stack becomes scrambled on next step. Only #0 is shown correctly with where @@@@@@@@@@@@@ (gdb) s __GI_getaddrinfo (name=0x5632040 "hostname.localdomain", service=0x0, hints=0x1ffefff920, pai=0x1ffefff918) at ../sysdeps/posix/getaddrinfo.c:2215 2215 if (name != NULL && name[0] == '*' && name[1] == 0) (gdb) where #0 __GI_getaddrinfo (name=0x5632040 "hostname.localdomain", service=0x0, hints=0x1ffefff920, pai=0x1ffefff918) at ../sysdeps/posix/getaddrinfo.c:2215 #1 0x0000001ffefffa30 in ?? () #2 0x000000000529d226 in __GI_getenv (name=0x1ffefff920 "\002") at getenv.c:35 #3 0x0000000000000000 in ?? () (gdb) cont Continuing. Program received signal SIGSEGV, Segmentation fault. 0x0000001ffefffa30 in ?? () (gdb) cont Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) quit Terminal 1 Segmentation fault (core dumped) @@@@@@@@@@@@@ Second run @@@@@@@@@@@@@ [auser@hostname ~]$ ls -l /etc/ld.so.preload ls: cannot access /etc/ld.so.preload: No such file or directory [auser@hostname ~]$ ldd /usr/bin/hostname linux-vdso.so.1 => (0x00007fffad9b2000) libnsl.so.1 => /usr/lib64/libnsl.so.1 (0x00002b3691222000) libc.so.6 => /usr/lib64/libc.so.6 (0x00002b369143c000) /lib64/ld-linux-x86-64.so.2 (0x00002b3690ffe000) Terminal 1 [auser@hostname ~]$ valgrind --trace-signals=yes -v --log-file=valgrind.out.3 --vgdb=full --vgdb-stop-at=startup hostname -d Terminal 2 [auser@hostname ~]$ cat valgrind.out.3 ==92915== Memcheck, a memory error detector ==92915== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==92915== Using Valgrind-3.20.0-5147d671e4-20221024 and LibVEX; rerun with -h for copyright info ==92915== Command: hostname -d ==92915== Parent PID: 73200 ==92915== --92915-- --92915-- Valgrind options: --92915-- --trace-signals=yes --92915-- -v --92915-- --log-file=valgrind.out.3 --92915-- --vgdb=full --92915-- --vgdb-stop-at=startup --92915-- Contents of /proc/version: --92915-- Linux version 3.10.0-1160.81.1.el7.x86_64 (mockbu...@x86-vm-38.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Nov 24 12:21:22 UTC 2022 --92915-- --92915-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-ssse3-avx-avx2-bmi-f16c-rdrand --92915-- Page sizes: currently 4096, max supported 4096 --92915-- Valgrind library directory: /home/auser/local/libexec/valgrind --92915-- Reading syms from /usr/bin/hostname --92915-- Considering /usr/lib/debug/.build-id/93/633698bd11eeb4bee21a388c191a5656990d8e.debug .. --92915-- .. build-id is valid --92915-- Reading syms from /usr/lib64/ld-2.17.so --92915-- Considering /usr/lib/debug/.build-id/62/c449974331341bb08dcce3859560a22af1e172.debug .. --92915-- .. build-id is valid --92915-- Reading syms from /home/auser/local/libexec/valgrind/memcheck-amd64-linux --92915-- object doesn't have a dynamic symbol table --92915-- Scheduler: using generic scheduler lock implementation. --92915-- Max kernel-supported signal is 64, VG_SIGVGKILL is 64 --92915-- Reading suppressions file: /home/auser/local/libexec/valgrind/default.supp ==92915== (action at startup) vgdb me ... ==92915== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-92915-by-auser-on-hostname.localdomain ==92915== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-92915-by-auser-on-hostname.localdomain ==92915== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-92915-by-auser-on-hostname.localdomain ==92915== ==92915== TO CONTROL THIS PROCESS USING vgdb (which you probably ==92915== don't want to do, unless you know exactly what you're doing, ==92915== or are doing some strange experiment): ==92915== /home/auser/local/libexec/valgrind/../../bin/vgdb --pid=92915 ...command... ==92915== ==92915== TO DEBUG THIS PROCESS USING GDB: start GDB like this ==92915== /path/to/gdb hostname ==92915== and then give GDB the following command ==92915== target remote | /home/auser/local/libexec/valgrind/../../bin/vgdb --pid=92915 ==92915== --pid is optional if only one valgrind process is running ==92915== [auser@hostname ~]$ gdb /usr/bin/hostname GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7 Copyright (C) 2013 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-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/bin/hostname...Reading symbols from /usr/lib/debug/usr/bin/hostname.debug...done. done. (gdb) target remote | /home/auser/local/libexec/valgrind/../../bin/vgdb --pid=92915 Remote debugging using | /home/auser/local/libexec/valgrind/../../bin/vgdb --pid=92915 relaying data between gdb and process 92915 Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug/usr/lib64/ld-2.17.so.debug...done. done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 0x0000000004001140 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) break show_name Breakpoint 1 at 0x401930: file hostname.c, line 256. (gdb) break getaddrinfo Breakpoint 2 at 0x401170 (gdb) cont Continuing. Breakpoint 1, show_name (type=type@entry=DNS) at hostname.c:256 256 { (gdb) n 264 switch(type) (gdb) n 334 memset(&hints, 0, sizeof(struct addrinfo)); (gdb) n 335 hints.ai_socktype = SOCK_DGRAM; (gdb) n 336 hints.ai_flags = AI_CANONNAME; (gdb) n 338 p = localhost(); (gdb) n 339 if ((ret = getaddrinfo(p, NULL, &hints, &res)) != 0) (gdb) s _vgr20160ZU_ldZhlinuxZhx86Zh64ZdsoZd2_strcmp (s1=0x40078f "libc.so.6", s2=0x401cf5a "") at ../shared/vg_replace_strmem.c:941 941 STRCMP(VG_Z_LD_LINUX_X86_64_SO_2, strcmp) (gdb) where #0 _vgr20160ZU_ldZhlinuxZhx86Zh64ZdsoZd2_strcmp (s1=0x40078f "libc.so.6", s2=0x401cf5a "") at ../shared/vg_replace_strmem.c:941 #1 0x0000000004010a15 in _dl_name_match_p (name=0x40078f "libc.so.6", map=0x4223150) at dl-misc.c:305 #2 0x0000000004009826 in do_lookup_x (new_hash=new_hash@entry=2089078220, old_hash=old_hash@entry=0x1ffefff4a0, result=result@entry=0x1ffefff4b0, scope=<optimized out>, i=<optimized out>, i@entry=0, flags=flags@entry=1, skip=skip@entry=0x0, undef_map=undef_map@entry=0x4223150) at dl-lookup.c:463 #3 0x000000000400a09f in _dl_lookup_symbol_x (undef_name=0x400820 "getaddrinfo", undef_map=0x4223150, ref=ref@entry=0x1ffefff568, symbol_scope=0x42234a8, version=0x4034a90, type_class=type_class@entry=1, flags=1, skip_map=skip_map@entry=0x0) at dl-lookup.c:739 #4 0x000000000400edee in _dl_fixup (l=<optimized out>, reloc_arg=<optimized out>) at ../elf/dl-runtime.c:111 #5 0x00000000040169ea in _dl_runtime_resolve_xsave () at ../sysdeps/x86_64/dl-trampoline.h:131 #6 0x0000000000401b19 in show_name (type=type@entry=DNS) at hostname.c:339 #7 0x00000000004013e4 in main (argc=2, argv=0x1ffefffbd8) at hostname.c:550 (gdb) finish Run till exit from #0 _vgr20160ZU_ldZhlinuxZhx86Zh64ZdsoZd2_strcmp (s1=0x40078f "libc.so.6", s2=0x401cf5a "") at ../shared/vg_replace_strmem.c:941 0x0000000004010a15 in _dl_name_match_p (name=0x40078f "libc.so.6", map=0x4223150) at dl-misc.c:305 305 if (strcmp (name, map->l_name) == 0) Value returned is $1 = 1 (gdb) finish Run till exit from #0 0x0000000004010a15 in _dl_name_match_p (name=0x40078f "libc.so.6", map=0x4223150) at dl-misc.c:305 0x0000000004009826 in do_lookup_x (new_hash=new_hash@entry=2089078220, old_hash=old_hash@entry=0x1ffefff4a0, result=result@entry=0x1ffefff4b0, scope=<optimized out>, i=<optimized out>, i@entry=0, flags=flags@entry=1, skip=skip@entry=0x0, undef_map=undef_map@entry=0x4223150) at dl-lookup.c:463 463 && __builtin_expect (_dl_name_match_p (version->filename, map), 0)) Value returned is $2 = 0 (gdb) finish Run till exit from #0 0x0000000004009826 in do_lookup_x (new_hash=new_hash@entry=2089078220, old_hash=old_hash@entry=0x1ffefff4a0, result=result@entry=0x1ffefff4b0, scope=<optimized out>, i=<optimized out>, i@entry=0, flags=flags@entry=1, skip=skip@entry=0x0, undef_map=undef_map@entry=0x4223150) at dl-lookup.c:463 _dl_lookup_symbol_x (undef_name=0x400820 "getaddrinfo", undef_map=0x4223150, ref=ref@entry=0x1ffefff568, symbol_scope=0x42234a8, version=0x4034a90, type_class=type_class@entry=1, flags=1, skip_map=skip_map@entry=0x0) at dl-lookup.c:742 742 if (res > 0) Value returned is $3 = 1 (gdb) finish Run till exit from #0 _dl_lookup_symbol_x (undef_name=0x400820 "getaddrinfo", undef_map=0x4223150, ref=ref@entry=0x1ffefff568, symbol_scope=0x42234a8, version=0x4034a90, type_class=type_class@entry=1, flags=1, skip_map=skip_map@entry=0x0) at dl-lookup.c:742 0x000000000400edee in _dl_fixup (l=<optimized out>, reloc_arg=<optimized out>) at ../elf/dl-runtime.c:111 111 result = _dl_lookup_symbol_x (strtab + sym->st_name, l, &sym, l->l_scope, Value returned is $4 = (struct link_map *) 0x40344c8 (gdb) finish Run till exit from #0 0x000000000400edee in _dl_fixup (l=<optimized out>, reloc_arg=<optimized out>) at ../elf/dl-runtime.c:111 _dl_runtime_resolve_xsave () at ../sysdeps/x86_64/dl-trampoline.h:132 132 mov %RAX_LP, %R11_LP # Save return value Value returned is $5 = 85186016 (gdb) finish Run till exit from #0 _dl_runtime_resolve_xsave () at ../sysdeps/x86_64/dl-trampoline.h:132 Breakpoint 2, __GI_getaddrinfo (name=0x5424040 "hostname.localdomain", service=service@entry=0x0, hints=hints@entry=0x1ffefff970, pai=pai@entry=0x1ffefff968) at ../sysdeps/posix/getaddrinfo.c:2208 2208 { (gdb) where #0 __GI_getaddrinfo (name=0x5424040 "hostname.localdomain", service=service@entry=0x0, hints=hints@entry=0x1ffefff970, pai=pai@entry=0x1ffefff968) at ../sysdeps/posix/getaddrinfo.c:2208 #1 0x0000000000401b19 in show_name (type=type@entry=DNS) at hostname.c:339 #2 0x00000000004013e4 in main (argc=2, argv=0x1ffefffbd8) at hostname.c:550 @@@@@@@@@@@@@ Call stack becomes scrambled on next step. Only #0 is shown correctly with where @@@@@@@@@@@@@ (gdb) s __GI_getaddrinfo (name=0x5424040 "hostname.localdomain", service=0x0, hints=0x1ffefff970, pai=0x1ffefff968) at ../sysdeps/posix/getaddrinfo.c:2215 2215 if (name != NULL && name[0] == '*' && name[1] == 0) (gdb) where #0 __GI_getaddrinfo (name=0x5424040 "hostname.localdomain", service=0x0, hints=0x1ffefff970, pai=0x1ffefff968) at ../sysdeps/posix/getaddrinfo.c:2215 #1 0x0000001ffefffa80 in ?? () #2 0x000000000508f226 in __GI_getenv (name=0x1ffefff970 "\002") at getenv.c:35 #3 0x0000000000000000 in ?? () (gdb) cont Continuing. Program received signal SIGSEGV, Segmentation fault. 0x0000001ffefffa80 in ?? () (gdb) cont Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb) quit [auser@hostname ~]$ Terminal 1 Segmentation fault (core dumped) -- You are receiving this mail because: You are watching all bug changes.