【发布时间】:2014-02-12 17:40:48
【问题描述】:
自从在 Maverick 上升级后,我的 Qt 应用程序出现了一个奇怪的问题 当在 QWebView 上的 javascript 中执行 alert() 或 confirm() 时,关闭简单的 Qmessagebox 或事件时,它们都会崩溃..
所以即使是 javascript 也让应用程序崩溃,我认为这不是错误的 c++ 代码?
我不知道从哪里开始,尝试什么。 我使用预编译的 Qt 5.2.0 编译,而我自己编译的结果相同...
这是 Mac OSX 上的崩溃日志:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: EXC_I386_GPFLT
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 QtWidgets 0x0000000100e963a1 QWidget::mapFromGlobal(QPoint const&) const + 49
1 QtWidgets 0x0000000100e9ae56 QWidgetWindow::handleTabletEvent(QTabletEvent*) + 598
2 QtWidgets 0x0000000100e9878d QWidgetWindow::event(QEvent*) + 509
3 QtWidgets 0x0000000100e433bc QApplicationPrivate::notify_helper(QObject*, QEvent*) + 300
4 QtWidgets 0x0000000100e45ef0 QApplication::notify(QObject*, QEvent*) + 6224
5 QtCore 0x00000001008dbbc2 QCoreApplication::notifyInternal(QObject*, QEvent*) + 114
6 QtGui 0x000000010025e0df QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::TabletEvent*) + 911
7 QtGui 0x0000000100259fd0 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) + 944
8 QtGui 0x0000000100249a68 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 56
9 libqcocoa.dylib 0x0000000108b59a17 QCocoaEventDispatcherPrivate::processPostedEvents() + 295
10 libqcocoa.dylib 0x0000000108b5a4f8 QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) + 40
11 com.apple.CoreFoundation 0x00007fff960c58f1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
12 com.apple.CoreFoundation 0x00007fff960b7062 __CFRunLoopDoSources0 + 242
13 com.apple.CoreFoundation 0x00007fff960b67ef __CFRunLoopRun + 831
14 com.apple.CoreFoundation 0x00007fff960b6275 CFRunLoopRunSpecific + 309
15 com.apple.HIToolbox 0x00007fff89e53f0d RunCurrentEventLoopInMode + 226
16 com.apple.HIToolbox 0x00007fff89e53b85 ReceiveNextEventCommon + 173
17 com.apple.HIToolbox 0x00007fff89e53abc _BlockUntilNextEventMatchingListInModeWithFilter + 65
18 com.apple.AppKit 0x00007fff944f728e _DPSNextEvent + 1434
19 com.apple.AppKit 0x00007fff944f68db -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
20 com.apple.AppKit 0x00007fff944ea9cc -[NSApplication run] + 553
21 libqcocoa.dylib 0x0000000108b592a7 QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2391
22 QtCore 0x00000001008d905d QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 397
23 QtCore 0x00000001008dc162 QCoreApplication::exec() + 354
24 @BUNDLEIDENTIFIER@ 0x0000000100006d22 main + 130
25 @BUNDLEIDENTIFIER@ 0x0000000100006c94 start + 52
有趣的是,我不知道这是否相关,但是... Qt Creatorr 的行为方式相同。当有一个对话框(如首选项)并返回主框架时,它会崩溃。
这与某种“重新聚焦”有关吗?
【问题讨论】:
-
尝试重启。从发布后的第 7 天开始,我就一直在小牛队,从来没有遇到过这样的问题。这可能是特定于安装 OS X 的特定架构的 Qt 错误 - 诚然,我只运行 6 年的 Core 2 硬件。
-
你有一个简单的测试用例吗?然后我会在 Qt 的 JIRA 中报告它。
-
@KubaOber 我在 macpro 2009 8core 上尝试了几次(在不同的磁盘上有 10.6 和 10.9)但没有成功
-
@FrankOsterfeld 你的意思是某种编译的应用程序示例?
-
Vincent Duprez:是的,一个可以编译并为您重现问题的简单示例。
标签: c++ macos qt osx-mavericks