Skip to main content
Topic solved
This topic has been marked as solved and requires no further attention.
Topic: debuginfod debug symbols missing for `qt6-base`. (Read 78 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

debuginfod debug symbols missing for `qt6-base`.

Ahoj,

I want to collect debug information (gdb backtrace of a crash) for some KDE application (neochat-git from the AUR), and it depends on qt6-declarative and qt6-base.

I have debuginfod enabled, but it seems that for qt6-base GDB still does not download debugging information.

Where I could locally build qt6-declarative with options+=('!lto' 'debug') and -DCMAKE_BUILD_TYPE=RelWithDebInfo yielding an additional package qt6-declarative-debug, doing this for qt6-base yields to a build error
Code: [Select]
[...]
[54/1768] Linking CXX executable lib/qt6/syncqt
FAILED: lib/qt6/syncqt
: && /usr/bin/c++ -march=native -mtune=native -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -fstack-clash-protection -fcf-protection -w -Wp,-D_GLIBCXX_ASSERTIONS -Og -fno-lto -gdwarf-5 -ggdb3 -gno-strict-dwarf -g3 -gpubnames -grecord-gcc-switches -fno-eliminate-unused-debug-symbols -fvar-tracking -fvar-tracking-assignments -fdebug-types-section -fno-stack-protector -fno-omit-frame-pointer -D_FORTIFY_SOURCE=0 -DDEBUG -ffile-prefix-map=/var/cache/makepkg/build/qt6-base/src=/usr/src/debug/qt6-base -g -DNDEBUG -O3 -fexceptions -flto=auto -fno-fat-lto-objects -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now     -Wl,-z,relro,-z,now -Wl,--enable-new-dtags -fPIE -pie src/tools/syncqt/CMakeFiles/syncqt.dir/main.cpp.o -o lib/qt6/syncqt  -Wl,-rpath,::::::::::: && :
/usr/bin/ld: src/tools/syncqt/CMakeFiles/syncqt.dir/main.cpp.o: plugin needed to handle lto object
/usr/bin/ld: src/tools/syncqt/CMakeFiles/syncqt.dir/main.cpp.o: plugin needed to handle lto object
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o: in function `_start':
(.text+0x1b): undefined reference to `main'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
(Also when I remove the !lto option I get the same -- my default makepkg options contain lto).

So, I am relying on debuginfod debug symbols here, but they seem not be provided.

Dear Artix maintainers, can you check what the issue is there, why they are not provided on your debuginfod server, and can you provide them?

Here a GDB backtrace with missing symbols for /usr/lib/libQt6Core.so.6 (and also for /usr/lib/libglib-2.0.so.0):
Quote
#0  0x00007ffff4bad9ef in ??? () at /usr/lib/libQt6Core.so.6
#1  0x000055555578493e in NeoChatConnection::errorOccured (this=this@entry=0x0, _t1=...) at /usr/src/debug/neochat-debug-git/build/src/neochat_autogen/include/moc_neochatconnection.cpp:689
#2  0x000055555591af40 in operator() (__closure=0x555556cca4e0, error=...) at /usr/src/debug/neochat-debug-git/neochat/src/login.cpp:88
#3  operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:141
#4  QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3>, QtPrivate::List<QString, QString, int, int>, void, LoginHelper::init()::<lambda(QString, const QString&, int, int)> >::call(LoginHelper::init()::<lambda(QString, const QString&, int, int)>&, void**)::<lambda()> > (args=<optimized out>, fn=<optimized out>)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#5  QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3>, QtPrivate::List<QString, QString, int, int>, void, LoginHelper::init()::<lambda(QString, const QString&, int, int)> >::call
    (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:140
#6  QtPrivate::FunctorCallable<LoginHelper::init()::<lambda(QString, const QString&, int, int)>, QString, QString, int, int>::call<QtPrivate::List<QString, QString, int, int>, void>
    (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:362
#7  QtPrivate::QCallableObject<LoginHelper::init()::<lambda(QString, const QString&, int, int)>, QtPrivate::List<QString, QString, int, int>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x555556cca4d0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:572
#8  0x00007ffff4badd9a in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007ffff6b5bcf9 in Quotient::Connection::networkError (this=this@entry=0x555556cb7400, _t1=..., _t2=..., _t3=<optimized out>, _t3@entry=1, _t4=<optimized out>, _t4@entry=0)
    at /usr/src/debug/libquotient-debug-git/build/QuotientQt6_autogen/include/moc_connection.cpp:1829
#10 0x00007ffff6b5f833 in operator() (__closure=<optimized out>, retriesTaken=1, nextInMilliseconds=0) at /usr/src/debug/libquotient-debug-git/libquotient-git/Quotient/connection.cpp:455
#11 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:141
#12 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<int, long int>, void, Quotient::Connection::sync(int)::<lambda(int, int)> >::call(Quotient::Connection::sync(int)::<lambda(int, int)>&, void**)::<lambda()> > (args=<optimized out>, fn=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#13 QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1>, QtPrivate::List<int, long int>, void, Quotient::Connection::sync(int)::<lambda(int, int)> >::call (f=<optimized out>, arg=<optimized out>)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:140
#14 QtPrivate::FunctorCallable<Quotient::Connection::sync(int)::<lambda(int, int)>, int, long int>::call<QtPrivate::List<int, long>, void> (f=<optimized out>, arg=<optimized out>)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:362
#15 QtPrivate::QCallableObject<Quotient::Connection::sync(int)::<lambda(int, int)>, QtPrivate::List<int, long int>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:572
#16 0x00007ffff4badd9a in ??? () at /usr/lib/libQt6Core.so.6
#17 0x00007ffff6b43349 in Quotient::BaseJob::retryScheduled (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>)
    at /usr/src/debug/libquotient-debug-git/build/QuotientQt6_autogen/T4CFEN5LXH/moc_basejob.cpp:510
#18 0x00007ffff4badd9a in ??? () at /usr/lib/libQt6Core.so.6
#19 0x00007ffff4bb6f44 in QTimer::timerEvent(QTimerEvent*) () at /usr/lib/libQt6Core.so.6
#20 0x00007ffff4b9f569 in QObject::event(QEvent*) () at /usr/lib/libQt6Core.so.6
#21 0x00007ffff5cfe0b7 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6
#22 0x00007ffff4b55f08 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#23 0x00007ffff4ccaba9 in QTimerInfoList::activateTimers() () at /usr/lib/libQt6Core.so.6
#24 0x00007ffff4db3edc in ??? () at /usr/lib/libQt6Core.so.6
#25 0x00007ffff250aeb9 in ??? () at /usr/lib/libglib-2.0.so.0
#26 0x00007ffff256b5d7 in ??? () at /usr/lib/libglib-2.0.so.0
#27 0x00007ffff250a432 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#28 0x00007ffff4db1358 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#29 0x00007ffff4b61a55 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#30 0x00007ffff4b57

Regards!


Re: debuginfod debug symbols missing for `qt6-base`.

Reply #1
We don't build debug packages for the vast majority of packages including this one. It takes too much space on the server. You can try using Arch's debug packages instead. It should not really matter in most cases.