SUMMARY | 问题概要
程序退出时偶现段错误。
查看堆栈,程序无法查找到 DTK 单例, DQuickControlColorSelector::onPaletteDestroyed() 函数被固定触发,通过在此函数中添加 dumpObjectTree 等调试信息,触发者来自 ToolTip 。
和ToolTip触发后退出 Palette 等资源的释放可能相关,通过Demo,可稳定复现此问题。
DTK and OS VERSIONS | DTK&系统版本信息
Distribution: v23 0719
Pacakge: dtk6declarative 6.0.16+u003
本地打包编译 6.0.18 基于 c2d07b2abcda620556da392cddb8ef7754c85b5c 测试同样现象
Minimal Reproducible Case Code | 最小复现案例代码
使用QtCreator模板创建 Dtk6 QtQuickApplication,在 Button 中添加 ToolTip 触发代码
Component {
Button {
//
ToolTip .delay : 500
ToolTip .text : qsTr (" Original size" )
ToolTip .timeout : 5000
ToolTip .visible : hovered
// end
anchors .centerIn : parent
text: qsTr (" Button" )
}
}
代码:
clicktiptest.zip
OBSERVED RESULT | 观察到的结果
多次点击/hover按钮,触发ToolTip显示,程序退出出现段错误(大概40%~60%概率)。
_._20240805110654.mp4
#18 0x00007f3fa8baa70d _Z10doActivateILb0EEvP7QObjectiPPv (libQt6Core.so.6 + 0x1aa70d)
#19 0x00007f3fa710b789 _ZN18QQmlOpenMetaObject15checkedSetValueEiRK8QVariantb (libQt6Qml.so.6 + 0x30b789)
#20 0x00007f3fa9140eeb _ZN3Dtk5Quick26DQuickControlColorSelector22updatePropertyFromNameERK10QByteArrayPKNS0_20DQuickControlPaletteE (libdtk6declarative.so.6 + 0x140eeb)
#21 0x00007f3fa91444a0 _ZN3Dtk5Quick26DQuickControlColorSelector18onPaletteDestroyedEv (libdtk6declarative.so.6 + 0x1444a0)
#22 0x00007f3fa8baa928 _Z10doActivateILb0EEvP7QObjectiPPv (libQt6Core.so.6 + 0x1aa928)
#23 0x00007f3fa8baae93 _ZN7QObject9destroyedEPS_ (libQt6Core.so.6 + 0x1aae93)
相关的程序coredump信息(基于 dtk6declarative 6.0.16+u003)
core.clicktiptest.1000.e54f87e93804424fa10aed0bc2a4a352.58880.17228272.zip
EXPECTED RESULT | 期望的结果
程序正常退出,ToolTip等控件的显示与否不会影响资源释放
ADDITIONAL INFORMATION | 额外补充
No response
SUMMARY | 问题概要
程序退出时偶现段错误。
查看堆栈,程序无法查找到 DTK 单例, DQuickControlColorSelector::onPaletteDestroyed() 函数被固定触发,通过在此函数中添加 dumpObjectTree 等调试信息,触发者来自 ToolTip 。
和ToolTip触发后退出 Palette 等资源的释放可能相关,通过Demo,可稳定复现此问题。
DTK and OS VERSIONS | DTK&系统版本信息
Distribution: v23 0719
Pacakge: dtk6declarative 6.0.16+u003
本地打包编译 6.0.18 基于 c2d07b2abcda620556da392cddb8ef7754c85b5c 测试同样现象
Minimal Reproducible Case Code | 最小复现案例代码
使用QtCreator模板创建 Dtk6 QtQuickApplication,在 Button 中添加 ToolTip 触发代码
代码:
clicktiptest.zip
OBSERVED RESULT | 观察到的结果
多次点击/hover按钮,触发ToolTip显示,程序退出出现段错误(大概40%~60%概率)。
_._20240805110654.mp4
相关的程序coredump信息(基于 dtk6declarative 6.0.16+u003)
core.clicktiptest.1000.e54f87e93804424fa10aed0bc2a4a352.58880.17228272.zip
EXPECTED RESULT | 期望的结果
程序正常退出,ToolTip等控件的显示与否不会影响资源释放
ADDITIONAL INFORMATION | 额外补充
No response