Firefox插件在Chrome中崩溃

时间:2008-11-19 15:45:17

标签: c++ google-chrome npapi

根据我收集的内容,Google Chrome可以运行使用NPAPI编写的浏览器插件。

我写过一篇在Firefox中工作得很好的软件,但是只要将Chrome嵌入到页面中,Chrome就会崩溃并刻录。我甚至不必调用任何方法,嵌入足以导致崩溃。

我该如何调试?我尝试将调试器附加到chrome,但我得到的堆栈跟踪深入到Chrome本身,就像我说的,没有“我的”实际代码正在运行,但据说只是NPAPI初始化代码。

我很欣赏一些指示。

3 个答案:

答案 0 :(得分:4)

Chromium开发文档描述了将Visual Studio附加到Chrome进程的一些技巧:Chromium Developer Documentation > Debugging Chromium

Chrome中的NPAPI插件可能会遇到一些问题:

  • 您的插件将在与Chrome用户界面分开的单独进程中运行。 (你可能已经知道了这一点:)
  • 如果加载了多个插件实例(在同一个HTML页面或不同的Chrome标签页中),您的插件实例一起在同一个进程中运行。如果你有全局变量,你的插件实例可能会相互踩踏。
  • Chrome使用DEP(数据执行保护),但Firefox不使用。如果您使用ATL或其他JITted代码技巧,DEP可能会使您的插件崩溃。

答案 1 :(得分:2)

Chrome是开源的...您是否尝试过下载源代码并构建它?这样,你至少可以将你的IDE指向源代码树,并在它崩溃时自动附加,这可以为你提供更多的信息。

当然,这不会解决您的错误,但它可能会帮助您向Chrome小组报告一个错误。众所周知,插件API对于Chrome来说是相当新的,而且可能是他们的错误而不是你的错误。

答案 2 :(得分:2)

事实证明,我使用的旧NPAPI插件示例中的部分初始化代码导致了崩溃。很抱歉,我已经解决了这一段时间,似乎无法找到我在版本控制历史记录中修复它的具体修改。无论如何,我的问题是固定的,是由于我愚蠢而盲目地信任示例代码。