嵌入在QWebView中的Flash Player会在Xcode中导致断点

时间:2010-01-21 21:27:48

标签: xcode qt gdb flash

我有一个Qt QWebView只包含在嵌入式Flash播放器中运行的SWF。

即。 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正在调用Debugger()并打破(大概是故意的)......任何想法为什么会发生这种情况?我怎么能让它消失?这很烦人。

2 个答案:

答案 0 :(得分:1)

Adob​​e的Flash / SWF插件的发布版本已经编译,至少有一次调用Debugger()。是的,这很蹩脚。是的,这是Adobe的错。

要解决这个问题,你需要告诉Xcode不要在Debugger()电话中断。您可以通过右键单击“组和文件”列表中的可执行文件,选择获取信息并取消选中 Break on Debugger()/ DebugStr()来执行此可执行文件。调试选项卡。您也可以在运行菜单中将其停用,就像zneak指出的那样。

答案 1 :(得分:0)

我认为让它消失的唯一方法是停止在Debugger()上打破。在Xcode的“运行”菜单中取消选中它。

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