Dear Maintainer,
I tried to have a look, but can just tell the location,
the dmesg output points to, is the following location.
And at this point the register rdi contains the value of "this",
at the submitters system 0x50, therefore causing the segfault.

Maybe install debug symbols and running at submitters system
inside valgrind could give some more pointers ... [1].

Kind regards,
Bernhard


Thread 1 "grub-customizer" hit Breakpoint 1, 
Trait_ActionLoggerAware::logActionBegin (action="update-timeout-setting", 
this=0x55f619eb7680) at 
./src/main/../Controller/Common/../../lib/Trait/ActionLoggerAware.hpp:42
42                              
this->logger->logActionBegin(this->_controllerName, action);
1: x/i $pc
=> 0x55f6199c94e1 <SettingsController::updateTimeoutSettingAction()+81>:        
mov    (%rdi),%rax
(gdb) bt
#0  0x000055f6199c94e1 in 
Trait_ActionLoggerAware::logActionBegin(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) const 
(action="update-timeout-setting", this=0x55f619eb7680) at 
./src/main/../Controller/Common/../../lib/Trait/ActionLoggerAware.hpp:42
#1  0x000055f6199c94e1 in SettingsController::updateTimeoutSettingAction() 
(this=0x55f619eb7680) at ./src/main/../Controller/SettingsController.hpp:285
...

[1] https://wiki.debian.org/HowToGetABacktrace#Installing_the_debugging_symbols

# Buster/stable amd64 qemu VM 2020-08-16


apt update
apt dist-upgrade


apt install systemd-coredump sddm xserver-xorg openbox xterm mc gdb 
grub-customizer grub-customizer-dbgsym
apt build-dep grub-customizer



mkdir /home/benutzer/source/grub-customizer/orig -p
cd    /home/benutzer/source/grub-customizer/orig
apt source grub-customizer
cd



export DISPLAY=:0
export XAUTHORITY=/home/benutzer/.Xauthority
export LANG=zh_CN.utf8

grub-customizer




echo -n "find /b ..., ..., 0x" && \
echo "00 48 89 84 24 98 00 00 00 31 c0 48 8d 6c 24 40 48 8d 45 10 48 89 ef 48 
89 44 24 40 e8 e8 bb fa ff 48 8b 7b 08 48 85 ff 74 0d <48> 8b 07 48 8d 73 18 48 
89 ea ff 50 18 48 8b 7c 24 40 48 8d 45 10" \
 | sed 's/[<>]//g' | sed 's/ /, 0x/g'

find /b ..., ..., 0x00, 0x48, 0x89, 0x84, 0x24, 0x98, 0x00, 0x00, 0x00, 0x31, 
0xc0, 0x48, 0x8d, 0x6c, 0x24, 0x40, 0x48, 0x8d, 0x45, 0x10, 0x48, 0x89, 0xef, 
0x48, 0x89, 0x44, 0x24, 0x40, 0xe8, 0xe8, 0xbb, 0xfa, 0xff, 0x48, 0x8b, 0x7b, 
0x08, 0x48, 0x85, 0xff, 0x74, 0x0d, 0x48, 0x8b, 0x07, 0x48, 0x8d, 0x73, 0x18, 
0x48, 0x89, 0xea, 0xff, 0x50, 0x18, 0x48, 0x8b, 0x7c, 0x24, 0x40, 0x48, 0x8d, 
0x45, 0x10



gdb -q --pid $(pidof grub-customizer)

(gdb) directory /home/benutzer/source/grub-customizer/orig/grub-customizer-5.1.0

(gdb) info target
        Entry point: 0x560dab1723e0
        0x000055f6198a82a8 - 0x000055f6198a82c4 is .interp
...
        0x000055f619a9d0e0 - 0x000055f619a9d230 is .bss
        0x00007ffb4989d238 - 0x00007ffb4989d25c is .note.gnu.build-id in 
/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
...

(gdb) find /b 0x000055f6198a82a8, 0x000055f619a9d230, 0x00, 0x48, 0x89, 0x84, 
0x24, 0x98, 0x00, 0x00, 0x00, 0x31, 0xc0, 0x48, 0x8d, 0x6c, 0x24, 0x40, 0x48, 
0x8d, 0x45, 0x10, 0x48, 0x89, 0xef, 0x48, 0x89, 0x44, 0x24, 0x40, 0xe8, 0xe8, 
0xbb, 0xfa, 0xff, 0x48, 0x8b, 0x7b, 0x08, 0x48, 0x85, 0xff, 0x74, 0x0d, 0x48, 
0x8b, 0x07, 0x48, 0x8d, 0x73, 0x18, 0x48, 0x89, 0xea, 0xff, 0x50, 0x18, 0x48, 
0x8b, 0x7c, 0x24, 0x40, 0x48, 0x8d, 0x45, 0x10
0x55f6199c94b7 <SettingsController::updateTimeoutSettingAction()+39>
1 pattern found.

(gdb) b * (0x55f6199c94b7 + 42)
Breakpoint 2 at 0x560dab1ee4e1: file 
./src/main/../Controller/Common/../../lib/Trait/ActionLoggerAware.hpp, line 42.
(gdb) cont

(gdb) cont
Continuing.
[Thread 0x7ffb43244700 (LWP 19172) exited]
[New Thread 0x7ffb43244700 (LWP 19174)]

Thread 1 "grub-customizer" hit Breakpoint 1, 
Trait_ActionLoggerAware::logActionBegin (action="update-timeout-setting", 
this=0x55f619eb7680)
    at ./src/main/../Controller/Common/../../lib/Trait/ActionLoggerAware.hpp:42
42                              
this->logger->logActionBegin(this->_controllerName, action);
1: x/i $pc
=> 0x55f6199c94e1 <SettingsController::updateTimeoutSettingAction()+81>:        
mov    (%rdi),%rax
(gdb) set width 0
(gdb) set pagination off
(gdb) bt
#0  0x000055f6199c94e1 in 
Trait_ActionLoggerAware::logActionBegin(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&) const 
(action="update-timeout-setting", this=0x55f619eb7680) at 
./src/main/../Controller/Common/../../lib/Trait/ActionLoggerAware.hpp:42
#1  0x000055f6199c94e1 in SettingsController::updateTimeoutSettingAction() 
(this=0x55f619eb7680) at ./src/main/../Controller/SettingsController.hpp:285
#2  0x00007ffb49793dc8 in 
Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) () at 
/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#3  0x00007ffb495bdc8d in g_closure_invoke () at 
/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4  0x00007ffb495d0e64 in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5  0x00007ffb495da2be in g_signal_emit_valist () at 
/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffb495da97f in g_signal_emit () at 
/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffb487a5fc0 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#8  0x00007ffb495bdc8d in g_closure_invoke () at 
/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9  0x00007ffb495d1365 in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007ffb495da2be in g_signal_emit_valist () at 
/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffb495da97f in g_signal_emit () at 
/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffb485da8e7 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#13 0x00007ffb487a450e in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#14 0x00007ffb487a55a3 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#15 0x00007ffb487a7e15 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x00007ffb4889a274 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#17 0x00007ffb495bdec6 in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x00007ffb495d9d74 in g_signal_emit_valist () at 
/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007ffb495da97f in g_signal_emit () at 
/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007ffb48848324 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffb48708976 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007ffb4870aa83 in gtk_main_do_event () at 
/lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00007ffb49671465 in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#24 0x00007ffb496a2112 in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#25 0x00007ffb494dbf2e in g_main_context_dispatch () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffb494dc1c8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffb494dc4c2 in g_main_loop_run () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffb48709b15 in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x000055f61994ce31 in main(int, char**) (argc=<optimized out>, 
argv=<optimized out>) at /usr/include/c++/8/bits/shared_ptr_base.h:996
(gdb) disassemble SettingsController::updateTimeoutSettingAction
Dump of assembler code for function 
SettingsController::updateTimeoutSettingAction():
   0x000055f6199c9490 <+0>:     push   %r15
   0x000055f6199c9492 <+2>:     lea    0x7bf91(%rip),%rdx        # 
0x55f619a4542a
   0x000055f6199c9499 <+9>:     push   %r14
   0x000055f6199c949b <+11>:    lea    -0x16(%rdx),%rsi
   0x000055f6199c949f <+15>:    push   %r13
   0x000055f6199c94a1 <+17>:    push   %r12
   0x000055f6199c94a3 <+19>:    push   %rbp
   0x000055f6199c94a4 <+20>:    push   %rbx
   0x000055f6199c94a5 <+21>:    mov    %rdi,%rbx
   0x000055f6199c94a8 <+24>:    sub    $0xa8,%rsp
   0x000055f6199c94af <+31>:    mov    %fs:0x28,%rax
   0x000055f6199c94b8 <+40>:    mov    %rax,0x98(%rsp)
   0x000055f6199c94c0 <+48>:    xor    %eax,%eax
   0x000055f6199c94c2 <+50>:    lea    0x40(%rsp),%rbp
   0x000055f6199c94c7 <+55>:    lea    0x10(%rbp),%rax
   0x000055f6199c94cb <+59>:    mov    %rbp,%rdi
   0x000055f6199c94ce <+62>:    mov    %rax,0x40(%rsp)
   0x000055f6199c94d3 <+67>:    callq  0x55f6199750c0 
<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>::_M_construct<char const*>(char const*, char const*, 
std::forward_iterator_tag)>
   0x000055f6199c94d8 <+72>:    mov    0x8(%rbx),%rdi
   0x000055f6199c94dc <+76>:    test   %rdi,%rdi
   0x000055f6199c94df <+79>:    je     0x55f6199c94ee 
<SettingsController::updateTimeoutSettingAction()+94>
=> 0x000055f6199c94e1 <+81>:    mov    (%rdi),%rax
   0x000055f6199c94e4 <+84>:    lea    0x18(%rbx),%rsi
   0x000055f6199c94e8 <+88>:    mov    %rbp,%rdx
   0x000055f6199c94eb <+91>:    callq  *0x18(%rax)
...
   0x000055f6199c9764 <+724>:   jmp    0x55f6199c9718 
<SettingsController::updateTimeoutSettingAction()+648>
End of assembler dump.
(gdb) print/x $rdi
$2 = 0x55f619e453c0
(gdb) print/x $rbx
$3 = 0x55f619eb7680
(gdb) print this
$4 = (const Trait_ActionLoggerAware * const) 0x55f619eb7680
(gdb) print/x this->logger
$5 = std::shared_ptr<Logger> (use count 101, weak count 0) = {get() = 
0x55f619e453c0}

Reply via email to