Thanks Wolfram, I tried patch #2 but CMake complains with an error message I'm apparently too dumb to understand:
-- Qt version: 5.12.3 -- Looking for backtrace -- Looking for backtrace - found -- backtrace facility detected in default set of libraries -- Found Backtrace: /usr/include CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:146 (message): Could NOT find Boost (missing: stacktrace_backtrace) (found suitable version "1.71.0", minimum required is "1.65.1") Call Stack (most recent call first): /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake/Modules/FindBoost.cmake:2179 (find_package_handle_standard_args) CMakeLists.txt:134 (find_package) -- Configuring incomplete, errors occurred! ...so... uh... why is it complaining even though it found a more recent version? Any idea? -Soeren On Fri, 2020-04-17 at 15:43 +0200, Wolfram Sang wrote: > Here is the second try to have stacktrace support in Pulseview > complete. > > Changes since v1: > * HACK crashes now when you press "Run" in pv, so you can view logs > before > * added check if 'backtrace' is supported on the system > * depending on that, the backtrace tracer or the simple tracer is > used > * no hardcoded libs anymore, all replaced by variables > * enforcing the debug build was removed. Also, no warning yet when > you > enable stacktrace and have no debug symbols > > For symbols outside pv, you still need to disable ASLR with > > $ sudo sysctl -w kernel.randomize_va_space=0 > > or using 'setarch ... -R ...' > > If you do that, the backtrace tracer gives nice output: > > pv: Stack trace file is "/tmp/pv_stacktrace.dmp" > pv: "Stack trace of previous crash:" > pv: --------------------------------------------------------- > pv: 0# signal_handler(int) at > /home/ninja/Tools/sigrok/pulseview/main.cpp:88 > 1# 0x00007FFFF63A38E0 in /lib/x86_64-linux-gnu/libc.so.6 > 2# raise at ../sysdeps/unix/sysv/linux/raise.c:51 > 3# signal_handler(int) at > /home/ninja/Tools/sigrok/pulseview/main.cpp:90 > 4# 0x00007FFFF63A38E0 in /lib/x86_64-linux-gnu/libc.so.6 > 5# pv::MainWindow::on_run_stop_clicked() at > /home/ninja/Tools/sigrok/pulseview/pv/mainwindow.cpp:713 > 6# pv::MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, > int, void**) at > /home/ninja/Tools/sigrok/pulseview/pulseview_autogen/PLNN4COFE5/moc_m > ainwindow.cpp:156 > 7# QMetaObject::activate(QObject*, int, int, void**) at > kernel/qobject.cpp:3788 > 8# QAbstractButton::clicked(bool) at .moc/moc_qabstractbutton.cpp:309 > 9# QAbstractButtonPrivate::emitClicked() at > widgets/qabstractbutton.cpp:416 > 10# QAbstractButtonPrivate::click() at > widgets/qabstractbutton.cpp:395 > 11# QAbstractButton::mouseReleaseEvent(QMouseEvent*) at > widgets/qabstractbutton.cpp:1012 > 12# QToolButton::mouseReleaseEvent(QMouseEvent*) at > widgets/qtoolbutton.cpp:623 > 13# QWidget::event(QEvent*) at kernel/qwidget.cpp:9355 > 14# QToolButton::event(QEvent*) at widgets/qtoolbutton.cpp:986 > 15# QApplicationPrivate::notify_helper(QObject*, QEvent*) at > kernel/qapplication.cpp:3728 > 16# QApplication::notify(QObject*, QEvent*) at > kernel/qapplication.cpp:3203 > 17# Application::notify(QObject*, QEvent*) at > /home/ninja/Tools/sigrok/pulseview/pv/application.cpp:318 > 18# QCoreApplication::notifyInternal2(QObject*, QEvent*) at > kernel/qcoreapplication.cpp:1047 > 19# QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, > QWidget*, QWidget*, QWidget**, QPointer&, bool) at > kernel/qapplication.cpp:2697 > 20# QWidgetWindow::handleMouseEvent(QMouseEvent*) at > ../../include/QtCore/../../src/corelib/kernel/qcoreevent.h:304 > 21# QWidgetWindow::event(QEvent*) at kernel/qwidgetwindow.cpp:224 > 22# QApplicationPrivate::notify_helper(QObject*, QEvent*) at > kernel/qapplication.cpp:3728 > 23# QApplication::notify(QObject*, QEvent*) at > kernel/qapplication.cpp:3486 > 24# Application::notify(QObject*, QEvent*) at > /home/ninja/Tools/sigrok/pulseview/pv/application.cpp:318 > 25# QCoreApplication::notifyInternal2(QObject*, QEvent*) at > kernel/qcoreapplication.cpp:1047 > 26# > QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePriva > te::MouseEvent*) at kernel/qguiapplication.cpp:2083 > 27# > QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfa > cePrivate::WindowSystemEvent*) at kernel/qguiapplication.cpp:1818 > 28# QWindowSystemInterface::sendWindowSystemEvents(QFlags) at > kernel/qwindowsysteminterface.cpp:1032 > 29# QPAEventDispatcherGlib::processEvents(QFlags) at > ./src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:71 > 30# QEventLoop::exec(QFlags) at kernel/qeventloop.cpp:213 > 31# QCoreApplication::exec() at kernel/qcoreapplication.cpp:1335 > 32# main at /home/ninja/Tools/sigrok/pulseview/main.cpp:335 > 33# __libc_start_main at ../csu/libc-start.c:342 > 34# 0x00000000004AABDA in ./pulseview > pv: --------------------------------------------------------- > > Simple tracer still works, too. Again no testing on non-Linux > platforms. > > Thanks to Soeren, Gerhard, and Uwe for support! > > Looking forward to comments. > > > Wolfram Sang (2): > HACK: make pulseview crash when pressing "Run" > Add stacktrace support > > CMakeLists.txt | 17 ++++++++++++++--- > pv/mainwindow.cpp | 1 + > 2 files changed, 15 insertions(+), 3 deletions(-) > _______________________________________________ sigrok-devel mailing list sigrok-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sigrok-devel