Hello Helge, just tried to reproduce the crash. One note first, if you follow the advice in the following link the backtrace could be much more meaningful for the maintainer when at least for the crashing application, better for all the shared objects in the backtrace the debugging symbols are installed.
https://wiki.debian.org/HowToGetABacktrace But I tried to find to which location the last frame belongs and came to the following location. (gdb) disassemble 0x0000555555597537,0x0000555555597537+0x50 Dump of assembler code from 0x555555597537 to 0x555555597587: 0x0000555555597537 <MainWindow::saveScreen()+647>: callq 0x555555579ee0 <Config::getDefaultFormatID()> 0x000055555559753c <MainWindow::saveScreen()+652>: mov -0x90(%rbp),%rcx 0x0000555555597543 <MainWindow::saveScreen()+659>: cltq 0x0000555555597545 <MainWindow::saveScreen()+661>: movslq 0x8(%rcx),%rdx 0x0000555555597549 <MainWindow::saveScreen()+665>: add %rdx,%rax 0x000055555559754c <MainWindow::saveScreen()+668>: mov 0x10(%rcx,%rax,8),%rdx 0x0000555555597551 <MainWindow::saveScreen()+673>: mov %rdx,-0x88(%rbp) => 0x0000555555597558 <MainWindow::saveScreen()+680>: mov (%rdx),%eax 0x000055555559755a <MainWindow::saveScreen()+682>: add $0x1,%eax 0x000055555559755d <MainWindow::saveScreen()+685>: cmp $0x1,%eax 0x0000555555597560 <MainWindow::saveScreen()+688>: ja 0x555555597f48 <MainWindow::saveScreen()+3224> 0x0000555555597566 <MainWindow::saveScreen()+694>: mov -0xc8(%rbp),%rax 0x000055555559756d <MainWindow::saveScreen()+701>: lea -0x80(%rbp),%rdi 0x0000555555597571 <MainWindow::saveScreen()+705>: mov 0x80(%rax),%rsi 0x0000555555597578 <MainWindow::saveScreen()+712>: callq 0x555555579e00 <Config::getSaveFormat()> ... End of assembler dump. That would translate to: (gdb) list MainWindow::saveScreen 555 556 void MainWindow::saveScreen() 557 { ... 565 // create initial filepath 566 QHash<QString, QString> formatsAvalible; 567 const QStringList formatIDs = _conf->getFormatIDs(); 568 for (const QString &formatID : formatIDs) 569 formatsAvalible[formatID] = tr("%1 Files").arg(formatID.toUpper()); 570 571 QString format = formatIDs.at(_conf->getDefaultFormatID()); <- Crash seems to happen on this line. 572 _conf->getSaveFormat(); ... Looking up what es behind these methods leads to the configuration file that looks like it needs to have currently one of _imageFormats = {"png", "jpg"}. $ grep defImgFormat ~/.config/screengrab/screengrab.conf defImgFormat=jpg Changing that line intentionally to something different leads to a crash at the exact same address from your backtrace. Even just to a captial letter. (gdb) bt #0 QString::QString (other=..., this=0x7fffffffd728) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:942 #1 MainWindow::saveScreen (this=0x555555819130) at ./src/core/ui/mainwindow.cpp:571 #2 0x00007ffff66f7910 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffd8c0, r=0x555555819130, this=0x555555874db0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:376 #3 QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3754 Therefore could you please lookup what this line looks like in your configuration file? Kind regards, Bernhard
apt update apt install xserver-xorg lightdm openbox xterm dpkg-dev devscripts gdb valgrind screengrab mc apt build-dep screengrab mkdir -p screengrab/orig cd screengrab/orig apt source screengrab cd ../.. mkdir -p libqt5core5a/orig cd libqt5core5a/orig apt source libqt5core5a-dbgsym cd ../.. ########### gdb -q --args screengrab directory /home/benutzer/screengrab/orig/screengrab-1.98 set height 0 set width 0 set pagination off display/i $pc b MainWindow::saveScreen b *0x555555597558 run (gdb) bt #0 0x0000555555597558 in MainWindow::saveScreen() () #1 0x00007ffff66f9910 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff7029ef2 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #3 0x00007ffff702c500 in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #4 0x00007ffff7117d1d in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #5 0x00007ffff7117f55 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #6 0x00007ffff7201caa in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #7 0x00007ffff706e7d8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #8 0x00007ffff7201d53 in QToolButton::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #9 0x00007ffff70304a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #10 0x00007ffff7037d28 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #11 0x00007ffff66d0579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #12 0x00007ffff7037029 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #13 0x00007ffff7089304 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #14 0x00007ffff708be8e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #15 0x00007ffff70304a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #16 0x00007ffff7037ae0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #17 0x00007ffff66d0579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #18 0x00007ffff6a6f53b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #19 0x00007ffff6a71435 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #20 0x00007ffff6a4bb6b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #21 0x00007ffff0ee3e5b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #22 0x00007ffff66cf24b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #23 0x00007ffff66d73c2 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #24 0x000055555557201c in main () apt install screengrab-dbgsym libqt5core5a-dbgsym libqt5widgets5-dbgsym libqt5gui5-dbgsym gdb -q --args screengrab directory /home/benutzer/screengrab/orig/screengrab-1.98 set height 0 set width 0 set pagination off display/i $pc b MainWindow::saveScreen b *0x555555597558 run cont 1: x/i $pc => 0x555555597558 <MainWindow::saveScreen()+680>: mov (%rdx),%eax (gdb) bt #0 QString::QString (other=..., this=0x7fffffffd728) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:942 #1 MainWindow::saveScreen (this=0x555555817ad0) at ./src/core/ui/mainwindow.cpp:571 #2 0x00007ffff66f9910 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffd8c0, r=0x555555817ad0, this=0x55555585c5a0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:376 #3 QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3754 #4 0x00007ffff66f9dd7 in QMetaObject::activate (sender=sender@entry=0x55555589cad0, m=m@entry=0x7ffff74f9840 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffd8c0) at kernel/qobject.cpp:3633 #5 0x00007ffff7029ef2 in QAction::triggered (this=this@entry=0x55555589cad0, _t1=<optimized out>) at .moc/moc_qaction.cpp:376 #6 0x00007ffff702c500 in QAction::activate (this=0x55555589cad0, event=<optimized out>) at kernel/qaction.cpp:1167 #7 0x00007ffff7117d1d in QAbstractButtonPrivate::click (this=0x55555589e870) at widgets/qabstractbutton.cpp:397 #8 0x00007ffff7117f55 in QAbstractButton::mouseReleaseEvent (this=0x55555589e670, e=0x7fffffffdd90) at widgets/qabstractbutton.cpp:1011 #9 0x00007ffff7201caa in QToolButton::mouseReleaseEvent (this=<optimized out>, e=<optimized out>) at widgets/qtoolbutton.cpp:622 #10 0x00007ffff706e7d8 in QWidget::event (this=0x55555589e670, event=0x7fffffffdd90) at kernel/qwidget.cpp:8919 #11 0x00007ffff7119193 in QAbstractButton::event (this=this@entry=0x55555589e670, e=e@entry=0x7fffffffdd90) at widgets/qabstractbutton.cpp:968 #12 0x00007ffff7201d53 in QToolButton::event (this=0x55555589e670, event=0x7fffffffdd90) at widgets/qtoolbutton.cpp:985 #13 0x00007ffff70304a1 in QApplicationPrivate::notify_helper (this=this@entry=0x5555557cdd30, receiver=receiver@entry=0x55555589e670, e=e@entry=0x7fffffffdd90) at kernel/qapplication.cpp:3727 #14 0x00007ffff7037d28 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3203 #15 0x00007ffff66d0579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307 #16 0x00007ffff7037029 in QCoreApplication::sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #17 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x55555589e670, event=event@entry=0x7fffffffdd90, alienWidget=alienWidget@entry=0x55555589e670, nativeWidget=0x555555817ad0, buttonDown=buttonDown@entry=0x7ffff7528870 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:2695 #18 0x00007ffff7089304 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /usr/include/c++/8/bits/atomic_base.h:390 #19 0x00007ffff708be8e in QWidgetWindow::event (this=0x5555559438d0, event=0x7fffffffe190) at kernel/qwidgetwindow.cpp:280 #20 0x00007ffff70304a1 in QApplicationPrivate::notify_helper (this=this@entry=0x5555557cdd30, receiver=receiver@entry=0x5555559438d0, e=e@entry=0x7fffffffe190) at kernel/qapplication.cpp:3727 #21 0x00007ffff7037ae0 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3486 #22 0x00007ffff66d0579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307 #23 0x00007ffff6a6f53b in QCoreApplication::sendSpontaneousEvent (event=0x7fffffffe190, receiver=0x5555559438d0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237 #24 QGuiApplicationPrivate::processMouseEvent (e=0x5555558d6fd0) at kernel/qguiapplication.cpp:2081 #25 0x00007ffff6a71435 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x5555558d6fd0) at kernel/qguiapplication.cpp:1816 #26 0x00007ffff6a4bb6b in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1032 #27 0x00007ffff0ee3e5b in QPAEventDispatcherGlib::processEvents (this=0x55555580d8d0, flags=...) at qeventdispatcher_glib.cpp:70 #28 0x00007ffff66cf24b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #29 0x00007ffff66d73c2 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #30 0x000055555557201c in main (argc=<optimized out>, argv=<optimized out>) at ./src/core/main.cpp:46 $ grep defImgFormat ~/.config/screengrab/screengrab.conf defImgFormat=jpg Intentionally changing to: defImgFormat=jpG dpkg --purge screengrab-dbgsym libqt5core5a-dbgsym libqt5widgets5-dbgsym libqt5gui5-dbgsym $ gdb -q --args screengrab Reading symbols from screengrab...(no debugging symbols found)...done. (gdb) set height 0 (gdb) set width 0 (gdb) set pagination off (gdb) display/i $pc 1: x/i $pc <error: No registers.> (gdb) run Starting program: /usr/bin/screengrab [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7fffee6a1700 (LWP 3053)] [New Thread 0x7fffed782700 (LWP 3054)] libGL error: pci id for fd 12: 1234:1111, driver (null) libGL error: No driver found libGL error: failed to load driver: (null) [New Thread 0x7fffe6021700 (LWP 3055)] [New Thread 0x7fffe5820700 (LWP 3056)] [New Thread 0x7fffe501f700 (LWP 3057)] [New Thread 0x7fffe481e700 (LWP 3058)] [New Thread 0x7fffcffff700 (LWP 3059)] [New Thread 0x7fffcf7fe700 (LWP 3060)] [New Thread 0x7fffceffd700 (LWP 3061)] [New Thread 0x7fffce7fc700 (LWP 3062)] Thread 1 "screengrab" received signal SIGSEGV, Segmentation fault. 0x0000555555597558 in MainWindow::saveScreen() () 1: x/i $pc => 0x555555597558 <_ZN10MainWindow10saveScreenEv+680>: mov (%rdx),%eax (gdb) bt #0 0x0000555555597558 in MainWindow::saveScreen() () #1 0x00007ffff66f7910 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff7027ef2 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #3 0x00007ffff702a500 in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #4 0x00007ffff7115d1d in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #5 0x00007ffff7115f55 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #6 0x00007ffff71ffcaa in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #7 0x00007ffff706c7d8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #8 0x00007ffff71ffd53 in QToolButton::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #9 0x00007ffff702e4a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #10 0x00007ffff7035d28 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #11 0x00007ffff66ce579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #12 0x00007ffff7035029 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #13 0x00007ffff7087304 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #14 0x00007ffff7089e8e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #15 0x00007ffff702e4a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #16 0x00007ffff7035ae0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #17 0x00007ffff66ce579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #18 0x00007ffff6a6d53b in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #19 0x00007ffff6a6f435 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #20 0x00007ffff6a49b6b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #21 0x00007ffff0edfe5b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #22 0x00007ffff66cd24b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #23 0x00007ffff66d53c2 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #24 0x000055555557201c in main () apt install screengrab-dbgsym libqt5core5a-dbgsym libqt5widgets5-dbgsym libqt5gui5-dbgsym $ gdb -q --args screengrab Reading symbols from screengrab...Reading symbols from /usr/lib/debug/.build-id/3f/221233e44d995ae91f3752e4194dfac5195d34.debug...done. done. (gdb) directory /home/benutzer/screengrab/orig/screengrab-1.98 Source directories searched: /home/benutzer/screengrab/orig/screengrab-1.98:$cdir:$cwd (gdb) set height 0 (gdb) set width 0 (gdb) set pagination off (gdb) display/i $pc 1: x/i $pc <error: No registers.> (gdb) run Starting program: /usr/bin/screengrab [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7fffee6a1700 (LWP 3136)] [New Thread 0x7fffed782700 (LWP 3137)] libGL error: pci id for fd 12: 1234:1111, driver (null) libGL error: No driver found libGL error: failed to load driver: (null) [New Thread 0x7fffe6021700 (LWP 3138)] [New Thread 0x7fffe5820700 (LWP 3139)] [New Thread 0x7fffe501f700 (LWP 3140)] [New Thread 0x7fffe481e700 (LWP 3141)] [New Thread 0x7fffcffff700 (LWP 3142)] [New Thread 0x7fffcf7fe700 (LWP 3143)] [New Thread 0x7fffceffd700 (LWP 3144)] [New Thread 0x7fffce7fc700 (LWP 3145)] Thread 1 "screengrab" received signal SIGSEGV, Segmentation fault. QString::QString (other=..., this=0x7fffffffd728) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:942 warning: Source file is more recent than executable. 942 inline QChar *QString::data() 1: x/i $pc => 0x555555597558 <MainWindow::saveScreen()+680>: mov (%rdx),%eax (gdb) bt #0 QString::QString (other=..., this=0x7fffffffd728) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:942 #1 MainWindow::saveScreen (this=0x555555819130) at ./src/core/ui/mainwindow.cpp:571 #2 0x00007ffff66f7910 in QtPrivate::QSlotObjectBase::call (a=0x7fffffffd8c0, r=0x555555819130, this=0x555555874db0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:376 #3 QMetaObject::activate(QObject*, int, int, void**) () at kernel/qobject.cpp:3754 #4 0x00007ffff66f7dd7 in QMetaObject::activate (sender=sender@entry=0x5555558b6ea0, m=m@entry=0x7ffff74f7840 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffd8c0) at kernel/qobject.cpp:3633 #5 0x00007ffff7027ef2 in QAction::triggered (this=this@entry=0x5555558b6ea0, _t1=<optimized out>) at .moc/moc_qaction.cpp:376 #6 0x00007ffff702a500 in QAction::activate (this=0x5555558b6ea0, event=<optimized out>) at kernel/qaction.cpp:1167 #7 0x00007ffff7115d1d in QAbstractButtonPrivate::click (this=0x5555558b8e10) at widgets/qabstractbutton.cpp:397 #8 0x00007ffff7115f55 in QAbstractButton::mouseReleaseEvent (this=0x5555558b8c10, e=0x7fffffffdd90) at widgets/qabstractbutton.cpp:1011 #9 0x00007ffff71ffcaa in QToolButton::mouseReleaseEvent (this=<optimized out>, e=<optimized out>) at widgets/qtoolbutton.cpp:622 #10 0x00007ffff706c7d8 in QWidget::event (this=0x5555558b8c10, event=0x7fffffffdd90) at kernel/qwidget.cpp:8919 #11 0x00007ffff7117193 in QAbstractButton::event (this=this@entry=0x5555558b8c10, e=e@entry=0x7fffffffdd90) at widgets/qabstractbutton.cpp:968 #12 0x00007ffff71ffd53 in QToolButton::event (this=0x5555558b8c10, event=0x7fffffffdd90) at widgets/qtoolbutton.cpp:985 #13 0x00007ffff702e4a1 in QApplicationPrivate::notify_helper (this=this@entry=0x5555557cdd30, receiver=receiver@entry=0x5555558b8c10, e=e@entry=0x7fffffffdd90) at kernel/qapplication.cpp:3727 #14 0x00007ffff7035d28 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3203 #15 0x00007ffff66ce579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307 #16 0x00007ffff7035029 in QCoreApplication::sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #17 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x5555558b8c10, event=event@entry=0x7fffffffdd90, alienWidget=alienWidget@entry=0x5555558b8c10, nativeWidget=0x555555819130, buttonDown=buttonDown@entry=0x7ffff7526870 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:2695 #18 0x00007ffff7087304 in QWidgetWindow::handleMouseEvent(QMouseEvent*) () at /usr/include/c++/8/bits/atomic_base.h:390 #19 0x00007ffff7089e8e in QWidgetWindow::event (this=0x55555595d030, event=0x7fffffffe190) at kernel/qwidgetwindow.cpp:280 #20 0x00007ffff702e4a1 in QApplicationPrivate::notify_helper (this=this@entry=0x5555557cdd30, receiver=receiver@entry=0x55555595d030, e=e@entry=0x7fffffffe190) at kernel/qapplication.cpp:3727 #21 0x00007ffff7035ae0 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3486 #22 0x00007ffff66ce579 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at ../../include/QtCore/5.11.1/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:307 #23 0x00007ffff6a6d53b in QCoreApplication::sendSpontaneousEvent (event=0x7fffffffe190, receiver=0x55555595d030) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237 #24 QGuiApplicationPrivate::processMouseEvent (e=0x5555559a2f20) at kernel/qguiapplication.cpp:2081 #25 0x00007ffff6a6f435 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x5555559a2f20) at kernel/qguiapplication.cpp:1816 #26 0x00007ffff6a49b6b in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1032 #27 0x00007ffff0edfe5b in QPAEventDispatcherGlib::processEvents (this=0x5555557d1680, flags=...) at qeventdispatcher_glib.cpp:70 #28 0x00007ffff66cd24b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #29 0x00007ffff66d53c2 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #30 0x000055555557201c in main (argc=<optimized out>, argv=<optimized out>) at ./src/core/main.cpp:46 (gdb) disassemble 0x0000555555597537,0x0000555555597537+0x50 Dump of assembler code from 0x555555597537 to 0x555555597587: 0x0000555555597537 <MainWindow::saveScreen()+647>: callq 0x555555579ee0 <Config::getDefaultFormatID()> 0x000055555559753c <MainWindow::saveScreen()+652>: mov -0x90(%rbp),%rcx 0x0000555555597543 <MainWindow::saveScreen()+659>: cltq 0x0000555555597545 <MainWindow::saveScreen()+661>: movslq 0x8(%rcx),%rdx 0x0000555555597549 <MainWindow::saveScreen()+665>: add %rdx,%rax 0x000055555559754c <MainWindow::saveScreen()+668>: mov 0x10(%rcx,%rax,8),%rdx 0x0000555555597551 <MainWindow::saveScreen()+673>: mov %rdx,-0x88(%rbp) => 0x0000555555597558 <MainWindow::saveScreen()+680>: mov (%rdx),%eax 0x000055555559755a <MainWindow::saveScreen()+682>: add $0x1,%eax 0x000055555559755d <MainWindow::saveScreen()+685>: cmp $0x1,%eax 0x0000555555597560 <MainWindow::saveScreen()+688>: ja 0x555555597f48 <MainWindow::saveScreen()+3224> 0x0000555555597566 <MainWindow::saveScreen()+694>: mov -0xc8(%rbp),%rax 0x000055555559756d <MainWindow::saveScreen()+701>: lea -0x80(%rbp),%rdi 0x0000555555597571 <MainWindow::saveScreen()+705>: mov 0x80(%rax),%rsi 0x0000555555597578 <MainWindow::saveScreen()+712>: callq 0x555555579e00 <Config::getSaveFormat()> 0x000055555559757d <MainWindow::saveScreen()+717>: mov -0x80(%rbp),%rdi 0x0000555555597581 <MainWindow::saveScreen()+721>: mov (%rdi),%eax 0x0000555555597583 <MainWindow::saveScreen()+723>: test %eax,%eax 0x0000555555597585 <MainWindow::saveScreen()+725>: je 0x555555597c18 <MainWindow::saveScreen()+2408> End of assembler dump. (gdb) list 942 inline QChar *QString::data() 943 { detach(); return reinterpret_cast<QChar*>(d->data()); } (gdb) list MainWindow::saveScreen 555 556 void MainWindow::saveScreen() 557 { 558 bool wasMinimized(isMinimized()); 559 if (wasMinimized) 560 { 561 showNormal(); 562 disableTrayMenuActions(true); 563 } 564 565 // create initial filepath 566 QHash<QString, QString> formatsAvalible; 567 const QStringList formatIDs = _conf->getFormatIDs(); 568 for (const QString &formatID : formatIDs) 569 formatsAvalible[formatID] = tr("%1 Files").arg(formatID.toUpper()); 570 571 QString format = formatIDs.at(_conf->getDefaultFormatID()); 572 _conf->getSaveFormat(); ... ./src/core/config.cpp:QStringList Config::getFormatIDs() const ./src/core/config.cpp-{ ./src/core/config.cpp- return _imageFormats; ./src/core/config.cpp:const static QStringList _imageFormats = {"png", "jpg"}; ./src/core/config.cpp:int Config::getDefaultFormatID() ./src/core/config.cpp-{ ./src/core/config.cpp- return _imageFormats.indexOf(getSaveFormat()); ./src/core/config.cpp:QString Config::getSaveFormat() ./src/core/config.cpp-{ ./src/core/config.cpp- return value(KEY_SAVEFORMAT).toString(); ./src/core/config.cpp:#define KEY_SAVEFORMAT "defImgFormat"