Created attachment 183364 [details] File to reproduce crash with SUMMARY Kcachegrind crashes with the following error when attempting to launch with the attached callgrind file: kcachegrind: .../libviews/controlflowgraphview.cpp:88: OutgoingEdgesComparator::OutgoingEdgesComparator(CanvasCFGNode*): Assertion `cn' failed. I generated a callgrind file using the following command: valgrind --tool=callgrind --callgrind-out-file=callgrind.out.new-self-release --dump-instr=yes --collect-jumps=yes ./new-self examples/fibonacci.self STEPS TO REPRODUCE 1. Run kcachegrind with the attached file (either via command line argument or through "Open...") 2. Crash OBSERVED RESULT Crash with the above assertion failure. EXPECTED RESULT kcachegrind to work. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Gentoo Linux amd64 (DE: Hyprland 0.49.0) KDE Plasma Version: 6.3.5 KDE Frameworks Version: 6.16.0 Qt Version: 6.9.1 Kcachegrind version: compiled from master (commit cbcaad4) ADDITIONAL INFORMATION Reproduction file attached. ---begin gdb backtrace--- Thread 1 "kcachegrind" received signal SIGABRT, Aborted. 0x00007ffff50bc87c in ?? () from /usr/lib64/libc.so.6 (gdb) bt #0 0x00007ffff50bc87c in ??? () at /usr/lib64/libc.so.6 #1 0x00007ffff5063696 in raise () at /usr/lib64/libc.so.6 #2 0x00007ffff504b30b in abort () at /usr/lib64/libc.so.6 #3 0x00007ffff504b275 in ??? () at /usr/lib64/libc.so.6 #4 0x00005555556fc202 in OutgoingEdgesComparator::OutgoingEdgesComparator (this=0x7fffffffc990, cn=0x0) at /home/agni/repos/third-party/kcachegrind/libviews/controlflowgraphview.cpp:88 #5 0x00005555556e96ce in CFGNode::sortEdges (this=0x555555dc5c68) at /home/agni/repos/third-party/kcachegrind/libviews/controlflowgraphview.cpp:156 #6 0x00005555556eb6e5 in CFGExporter::sortEdges (this=0x555555da2678) at /home/agni/repos/third-party/kcachegrind/libviews/controlflowgraphview.cpp:647 #7 0x00005555556f40fb in ControlFlowGraphView::dotExited (this=0x555555da2530) at /home/agni/repos/third-party/kcachegrind/libviews/controlflowgraphview.cpp:1918 #8 0x000055555570fd66 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (ControlFlowGraphView::*)()>::call(void (ControlFlowGraphView::*)(), ControlFlowGraphView*, void**)::{lambda()#1}::operator()() const (__closure=0x7fffffffcb30) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:127 #9 0x0000555555711410 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (ControlFlowGraphView::*)()>::call(void (ControlFlowGraphView::*)(), ControlFlowGraphView*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (ControlFlowGraphView::*)()>::call(void (ControlFlowGraphView::*)(), ControlFlowGraphView*, void**)::{lambda()#1}&&) (args=0x7fffffffcd40, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65 #10 0x000055555570fddc in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (ControlFlowGraphView::*)()>::call(void (ControlFlowGraphView::*)(), ControlFlowGraphView*, void**) (f=(void (ControlFlowGraphView::*)(ControlFlowGraphView * const)) 0x5555556f3eea <ControlFlowGraphView::dotExited()>, o=0x555555da2530, arg=0x7fffffffcd40) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:126 #11 0x000055555570dd30 in QtPrivate::FunctionPointer<void (ControlFlowGraphView::*)()>::call<QtPrivate::List<>, void>(void (ControlFlowGraphView::*)(), ControlFlowGraphView*, void**) (f=(void (ControlFlowGraphView::*)(ControlFlowGraphView * const)) 0x5555556f3eea <ControlFlowGraphView::dotExited()>, o=0x555555da2530, arg=0x7fffffffcd40) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:174 #12 0x0000555555709eb1 in QtPrivate::QCallableObject<void (ControlFlowGraphView::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x555555db99a0, r=0x555555da2530, a=0x7fffffffcd40, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:545 #13 0x00007ffff59444ac in ??? () at /usr/lib64/libQt6Core.so.6 #14 0x00007ffff57363fc in ??? () at /usr/lib64/libQt6Core.so.6 #15 0x00007ffff594439d in ??? () at /usr/lib64/libQt6Core.so.6 #16 0x00007ffff5a09b06 in QSocketNotifier::event(QEvent*) () at /usr/lib64/libQt6Core.so.6 #17 0x00007ffff6fdab32 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6 #18 0x00007ffff5960948 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6 #19 0x00007ffff56ea2af in ??? () at /usr/lib64/libQt6Core.so.6 #20 0x00007ffff4521ca2 in ??? () at /usr/lib64/libglib-2.0.so.0 #21 0x00007ffff4525467 in ??? () at /usr/lib64/libglib-2.0.so.0 #22 0x00007ffff4525c10 in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #23 0x00007ffff56cc848 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6 #24 0x00007ffff598feda in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6 #25 0x00007ffff599005d in QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6 #26 0x0000555555595535 in main (argc=2, argv=0x7fffffffd5c8) at /home/agni/repos/third-party/kcachegrind/kcachegrind/main.cpp:90 ---end gdb backtrace---