2010-01-21 68 views
0

我有一个Qt QWebView,它只包含在嵌入式Flash播放器中运行的SWF。嵌入在QWebView中的Flash Player导致Xcode中的断点

即HTML看起来像这样:

<body style="margin: 0px; overflow:hidden; background: #FFFFFF"> 
    <object type="application/x-shockwave-flash" data="preview.swf" width="100%" height="100%">    
    </object> 
</body> 

一切都在我的应用程序工作,但QWebView第一次加载时,一个破发点在Xcode的调试器总是被触发。调用堆栈看起来是这样的:

#0 0x9642d126 in Debugger 
#1 0x77a03785 in dyld_stub_write 
#2 0x77a03a3f in NP_Initialize 
#3 0x2663fcfd in WebCore::PluginPackage::load 
#4 0x2664041f in WebCore::PluginPackage::fetchInfo 
#5 0x264dffa7 in WebCore::PluginPackage::createPackage 
#6 0x264daf55 in WebCore::PluginDatabase::refresh 
#7 0x264db31c in WebCore::PluginDatabase::installedPlugins 
#8 0x2661d519 in WebCore::FrameLoaderClientQt::objectContentType 
#9 0x26361e26 in WebCore::HTMLPlugInImageElement::isImageType 

和控制台显示的是:

Debugger() was called! 

所以很清楚dyld_stub_write是调用调试器()和断裂(故意大概)...任何想法,为什么这可能会发生?我怎样才能让它消失?这非常烦人。

回答

1

Adob​​e的Flash/SWF插件的发布版本已编译成至少有一次致电Debugger()。是的,这是跛脚。是的,这是Adobe的错。

要解决它,你需要告诉Xcode不要在Debugger()呼叫中断。您可以通过在“组和文件”列表中右键单击可执行文件来执行此操作,在调试选项卡中选择获取信息并取消选中Break on Debugger()/ DebugStr()。正如zneak指出的,您也可以在运行菜单中将其禁用。

0

我看到让它消失的唯一方法就是停止调试器()。在Xcode的运行菜单中取消选中它。

如果您在自己的项目中依赖调用Debugger(),我建议您使用“常规”断点。