2014-01-23 185 views
1

我的一位客戶在Mac OS 10.9(Mavericks)的Qt 4.8.5應用程序中遇到以下崩潰。由於我有點卡住,無法重現它:這裏有人有暗示嗎?Mac OS X上的QMetaObject :: changeGuard崩潰10.9

這裏是調用堆棧:

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可能會解決這個問題。關於這種迷戀有很多話題,所以也許你會找到對你有用的東西。

+0

崩潰發生在10.9.1系統上,抱歉不提這件事。我會測試調整大小。你能發表其他提及崩潰的其中一個提示嗎?我沒有找到一個相同的。 – Fabian

+0

我用[此搜索](https://www.google.pl/search?q=qdesktopwidget::resizeEvent+maveric+osx) –

+0

謝謝。 Google確實在調用堆棧中顯示了一些調整大小事件的崩潰,但不幸的是,沒有一個以我的方式結束(在QMetaObject :: changeGuard中崩潰)。因此,他們似乎是不同的崩潰。 – Fabian