https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121593
--- Comment #14 from Marc Mutz <marc.mutz at hotmail dot com> --- C++ build gives me also a crash, this time with a nicer backtrace: ``` ********* Start testing of tst_QXmlStream ********* Config: Using QtTest library 6.11.0, Qt 6.11.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 15.2.1 20250819), ubuntu 20.04 QDEBUG : tst_QXmlStream::initTestCase() copyDir "/home/marc/Qt/qtbase-submit/tests/auto/corelib/serialization/qxmlstream/XML-Test-Suite" -> "/tmp/tst_qxmlstream-KOOsyA/XML-Test-Suite" QDEBUG : tst_QXmlStream::initTestCase() copyDir finished in 0 seconds PASS : tst_QXmlStream::initTestCase() Received signal 11 (SIGSEGV), code SEGV_MAPERR, at instruction address 0x00007fddd222f186, accessing address 0x0000000000000001 writerAutoEmptyTags function time: 0ms, total time: 88ms === Stack trace === [New LWP 1852278] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007fddd1987c7f in __GI___wait4 (pid=1852279, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27 27 ../sysdeps/unix/sysv/linux/wait4.c: No such file or directory. warning: File "/d/gcc/15/lib64/libstdc++.so.6.0.34-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load". To enable execution of this file add add-auto-load-safe-path /d/gcc/15/lib64/libstdc++.so.6.0.34-gdb.py line to your configuration file "/home/marc/.gdbinit". To completely disable this security protection add set auto-load safe-path / line to your configuration file "/home/marc/.gdbinit". For more information about this security protection see the "Auto-loading safe path" section in the GDB manual. E.g., run from the shell: info "(gdb)Auto-loading safe path" 0x7fddd222f186 <QUtf8Functions::nextCharacterFromUtf8<QUtf8BaseTraits>(char8_t const*&, char8_t const*, char32_t)+6>: movzbl (%rcx),%edx Thread 2 (Thread 0x7fddce745700 (LWP 1852278)): #0 futex_abstimed_wait_cancelable (private=<optimized out>, abstime=0x7fddce744ca0, clockid=<optimized out>, expected=0, futex_word=0x7ffe0b7c59c4) at ../sysdeps/nptl/futex-internal.h:320 #1 __pthread_cond_wait_common (abstime=0x7fddce744ca0, clockid=<optimized out>, mutex=0x7ffe0b7c5970, cond=0x7ffe0b7c5998) at pthread_cond_wait.c:520 #2 __pthread_cond_clockwait (abstime=0x7fddce744ca0, clockid=<optimized out>, mutex=0x7ffe0b7c5970, cond=0x7ffe0b7c5998) at pthread_cond_wait.c:686 #3 __pthread_cond_clockwait (cond=0x7ffe0b7c5998, mutex=0x7ffe0b7c5970, clockid=<optimized out>, abstime=0x7fddce744ca0) at pthread_cond_wait.c:674 #4 0x00007fddd26088be in std::__condvar::wait_until (this=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __m=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __clock=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __abs_time=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /d/gcc/15/include/c++/15.2.1/bits/std_mutex.h:187 #5 std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (__lock=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, this=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __atime=...) at /d/gcc/15/include/c++/15.2.1/condition_variable:205 #6 std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (this=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __lock=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __atime=...) at /d/gcc/15/include/c++/15.2.1/condition_variable:115 #7 std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> >, QTest::WatchDog::waitFor(std::unique_lock<std::mutex>&, QTest::WatchDog::Expectation)::{lambda()#1}>(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&, QTest::WatchDog::waitFor(std::unique_lock<std::mutex>&, QTest::WatchDog::Expectation)::{lambda()#1}) (this=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __lock=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __atime=..., __p=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /d/gcc/15/include/c++/15.2.1/condition_variable:156 #8 std::condition_variable::wait_for<long, std::ratio<1l, 1000l>, QTest::WatchDog::waitFor(std::unique_lock<std::mutex>&, QTest::WatchDog::Expectation)::{lambda()#1}>(std::unique_lock<std::mutex>&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&, QTest::WatchDog::waitFor(std::unique_lock<std::mutex>&, QTest::WatchDog::Expectation)::{lambda()#1}) (__rtime=..., this=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __lock=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, __p=...) at /d/gcc/15/include/c++/15.2.1/condition_variable:179 #9 QTest::WatchDog::waitFor (this=<optimized out>, m=..., e=14) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1154 #10 QTest::WatchDog::run (this=<optimized out>) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1218 #11 0x00007fddd227949e in operator() (__closure=<optimized out>) at /home/marc/Qt/qtbase-submit/src/corelib/thread/qthread_unix.cpp:435 #12 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /home/marc/Qt/qtbase-submit/src/corelib/thread/qthread_unix.cpp:367 #13 QThreadPrivate::start (arg=0x7ffe0b7c5960) at /home/marc/Qt/qtbase-submit/src/corelib/thread/qthread_unix.cpp:395 #14 0x00007fddd1ea2609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #15 0x00007fddd19c4353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 1 (Thread 0x7fddced128c0 (LWP 1852277)): #0 0x00007fddd1987c7f in __GI___wait4 (pid=1852279, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27 #1 0x00007fddd2628a65 in QTest::CrashHandler::generateStackTrace (ip=140590690005382) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcrashhandler_unix.cpp:482 #2 0x00007fddd26293de in QTest::CrashHandler::generateStackTrace (ip=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcrashhandler_unix.cpp:802 #3 QTest::CrashHandler::actionHandler (signum=11, info=<optimized out>, ucontext=<optimized out>) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcrashhandler_unix.cpp:802 #4 <signal handler called> #5 0x00007fddd222f186 in QUtf8Functions::nextCharacterFromUtf8<QUtf8BaseTraits> (src=@0x7ffe0b7c50c0: 0x1 <error: Cannot access memory at address 0x1>, end=end@entry=0x555a43db4481 "", errorChar=4294967295 U'\xffffffff') at /home/marc/Qt/qtbase-submit/src/corelib/text/qstringconverter_p.h:298 #6 0x00007fddd2234da0 in QXmlStreamWriterPrivate::NextUtf8::operator() (this=<synthetic pointer>, it=@0x7ffe0b7c50c0: 0x1 <error: Cannot access memory at address 0x1>, end=<optimized out>) at /home/marc/Qt/qtbase-submit/src/corelib/serialization/qxmlstream.cpp:3285 #7 operator()<QBasicUtf8StringView<false> > (__closure=<optimized out>, s=...) at /home/marc/Qt/qtbase-submit/src/corelib/serialization/qxmlstream.cpp:3287 #8 QAnyStringView::visit<QXmlStreamWriterPrivate::writeEscaped(QAnyStringView, bool)::<lambda(auto:65)> > (this=<synthetic pointer>, v=...) at /home/marc/Qt/qtbase-submit/src/corelib/text/qstring.h:121 #9 QXmlStreamWriterPrivate::writeEscaped (this=0x555a59ee9ef0, s=..., escapeWhitespace=<optimized out>) at /home/marc/Qt/qtbase-submit/src/corelib/serialization/qxmlstream.cpp:3272 #10 0x00007fddd2236494 in QXmlStreamWriter::writeAttribute (this=<optimized out>, qualifiedName=..., value=...) at /home/marc/Qt/qtbase-submit/src/corelib/serialization/qxmlstream.cpp:3752 #11 0x0000555a43d984c6 in tst_QXmlStream::writerAutoEmptyTags (this=<optimized out>) at /home/marc/Qt/qtbase-submit/src/corelib/text/qanystringview.h:182 #12 0x00007fddd20b5ad1 in QMetaMethodInvoker::invokeImpl (self=..., target=0x7ffe0b7c5c80, connectionType=Qt::DirectConnection, paramCount=<optimized out>, parameters=0x7ffe0b7c5470, typeNames=0x7ffe0b7c5478, metaTypes=0x7ffe0b7c5480) at /home/marc/Qt/qtbase-submit/src/corelib/kernel/qmetaobject.cpp:2867 #13 0x00007fddd20b6647 in QMetaMethod::invokeImpl (self=..., target=<optimized out>, connectionType=connectionType@entry=Qt::DirectConnection, paramCount=paramCount@entry=1, parameters=parameters@entry=0x7ffe0b7c5470, typeNames=0x7ffe0b7c5478, metaTypes=0x7ffe0b7c5480) at /home/marc/Qt/qtbase-submit/src/corelib/kernel/qmetaobject.cpp:2705 #14 0x00007fddd25fbe1a in QMetaMethod::invoke<void> (this=<synthetic pointer>, this@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, obj=<optimized out>, obj@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, c=Qt::DirectConnection, c@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, r=...) at /d/gcc/15/include/c++/15.2.1/array:284 #15 QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const (this=<synthetic pointer>, this@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, obj=<optimized out>, obj@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, c=Qt::DirectConnection, c@entry=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at /home/marc/Qt/qtbase-submit/src/corelib/kernel/qmetaobject.h:162 #16 QTest::invokeTestMethodIfValid (m=..., obj=<optimized out>) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:434 #17 0x00007fddd2604547 in QTest::TestMethods::invokeTestOnData (this=0x7ffe0b7c5b20, index=<optimized out>) at /d/gcc/15/include/c++/15.2.1/bits/stl_vector.h:1282 #18 0x00007fddd26054de in operator() (__closure=<optimized out>) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1368 #19 QTest::runWithWatchdog<QTest::TestMethods::invokeTest(int, QLatin1StringView, std::optional<QTest::WatchDog>&) const::<lambda()> > (watchDog=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, f=...) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1251 #20 QTest::TestMethods::invokeTest (this=<optimized out>, index=<optimized out>, tag=..., watchDog=...) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1367 #21 0x00007fddd2605f8a in QTest::TestMethods::invokeTests (this=0x7ffe0b7c5b20, testObject=0x7ffe0b7c5c80) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1706 #22 0x00007fddd2606a25 in QTest::qRun () at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1951 #23 0x00007fddd2606e92 in QTest::qExec (testObject=<optimized out>, argc=<optimized out>, argv=<optimized out>) at /home/marc/Qt/qtbase-submit/src/testlib/qtestcase.cpp:1823 #24 0x0000555a43d7b4df in main (argc=<optimized out>, argv=0x7ffe0b7c5e38) at /home/marc/Qt/qtbase-submit/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp:1814 ``` Debugging...