Details
-
Suggestion
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
None
-
None
Description
Problem description
When testing an ASAN (Adress SANitizer) enabled configuration in qtvirtualkeyboard, the backtraces are lacking source code information for code that goes into the dependency submodules, for example qtdeclarative. Here is the log that belongs to this task. The problematic part is this:
PASS : inputpanel::tst_plugin::test_fullScreenModeWordReselection(row 18) ================================================================= ==2010==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffca65d03d8 at pc 0x7fdebfa92186 bp 0x7fde9c51dd60 sp 0x7fde9c51dd58 READ of size 1 at 0x7ffca65d03d8 thread T9 (QSGRenderThread) #0 0x7fdebfa92185 (/home/qt/work/install/lib/libQt6QuickTest.so.6+0x45185) #1 0x7fdebfa912bc (/home/qt/work/install/lib/libQt6QuickTest.so.6+0x442bc) #2 0x7fdebc4082a0 in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (/home/qt/work/install/lib/libQt6Core.so.6+0x4692a0) #3 0x7fdebc51e3cc (/home/qt/work/install/lib/libQt6Core.so.6+0x57f3cc) #4 0x7fdebc50803c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (/home/qt/work/install/lib/libQt6Core.so.6+0x56903c) #5 0x7fdeba263480 in QQuickWindow::frameSwapped() (/home/qt/work/install/lib/libQt6Quick.so.6+0x902480) #6 0x7fdeba2f5143 (/home/qt/work/install/lib/libQt6Quick.so.6+0x994143) #7 0x7fdebaa73287 (/home/qt/work/install/lib/libQt6Quick.so.6+0x1112287) #8 0x7fdebaa75f4b (/home/qt/work/install/lib/libQt6Quick.so.6+0x1114f4b) #9 0x7fdebc9a30b7 (/home/qt/work/install/lib/libQt6Core.so.6+0xa040b7) #10 0x7fdebc9a6150 (/home/qt/work/install/lib/libQt6Core.so.6+0xa07150) #11 0x7fdebc9a32ca in QThreadPrivate::start(void*) (/home/qt/work/install/lib/libQt6Core.so.6+0xa042ca) #12 0x7fdebb7f56e9 in start_thread (/lib64/libpthread.so.0+0xa6e9) #13 0x7fdebb70d94e in clone (/lib64/libc.so.6+0x11794e) Address 0x7ffca65d03d8 is located in stack of thread T0 at offset 968 in frame #0 0x7fdeb8838b0f in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) (/home/qt/work/install/lib/libQt6Qml.so.6+0xe65b0f)
You can see that it's lacking source code information for the submodules it depends on.
Suggestion
Have a "Coin Feature" that I can enable in a configuration, for example "ExtractDependenciesSourceCode", that always extracts the source code of all other submodules, besides the one being tested.
EDIT: An alternative would be to have a script that would install the source code of all modules on demand, and checkout the correct revision. For example
~/coin_util/checkout_source_code.sh
Actually I like this approach more. It would save a lot of overhead and bandwidth involved in transferring the source in the beginning of the workitem.
Attachments
Issue Links
- resulted from
-
QTBUG-117060 ERROR: AddressSanitizer: heap-use-after-free in tst_inputpanel
- Closed