我的一位客户在Mac OS 10.9(Mavericks)的Qt 4.8.5应用程序中遇到了以下崩溃。因为我有点卡住而无法重现它:这里有人提示吗?
这是callstack:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 QtCore 0x000000010177adfd QMetaObject::changeGuard(QObject**, QObject*) + 509
1 QtGui 0x000000010197d716 QCursor::handle() const + 566
2 QtGui 0x00000001019a5638 QMacCocoaAutoReleasePool::~QMacCocoaAutoReleasePool() + 18632
3 QtGui 0x000000010199a814 QMacInputContext::reset() + 24884
4 com.apple.AppKit 0x00007fff92775a62 -[NSApplication sendEvent:] + 2819
5 QtGui 0x000000010199f814 QMacInputContext::reset() + 45364
6 com.apple.AppKit 0x00007fff925c5a29 -[NSApplication run] + 646
7 QtGui 0x00000001019aa680 QDesktopWidget::resizeEvent(QResizeEvent*) + 13040
8 QtCore 0x0000000101762af4 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
9 QtCore 0x0000000101762ea4 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 324
10 QtCore 0x000000010176558c QCoreApplication::exec() + 188
根据客户的说法,特定操作不会发生崩溃,而是在使用应用程序时发生。
答案 0 :(得分:0)
请注意,在调用堆栈中,您可以通过事件循环直接调用QDesktopWidget::resizeEvent(QResizeEvent*)
。如果您阅读QDesktopWidget的功能,那么应该会发现测试场景与您的应用程序没有直接关系。
尝试与桌面大小更改相关的操作,最大化某些应用程序(不需要你的)更改桌面,最小化/最大化某些应用程序,尝试多个显示器,在显示器之间移动应用程序,尝试更改屏幕分辨率等等。
比较OS X版本,您和客户端。苹果最近做了多台显示器支持。
<小时/> 我用Google搜索了一下,我发现了一些暗示10.9.1可以解决这个问题的东西。关于这个粉碎的话题很多,所以你可能会发现一些对你有用的东西。
答案 1 :(得分:0)
我设法跟踪问题有点失望。它发生在我的应用程序中的特定多选情况中,并且调整计时器值会绕过崩溃。
我仍然不知道为什么它在该特定位置崩溃,但它可能只是我的应用程序导致问题。无论如何,解决了我的知识,可能与其他人无关。