GWT SuperDevMode 断点不起作用

Posted

技术标签:

【中文标题】GWT SuperDevMode 断点不起作用【英文标题】:GWT SuperDevMode breakpoints not working 【发布时间】:2014-06-17 23:31:05 【问题描述】:

我正在使用 IntelliJ,我试图在一个类中放置一个断点,有时它可以工作,但有时它会将调试器带到文件 MyApp-0.js 中,我必须调试神秘生成的 javascript

有没有办法在相应的 Java 文件中使用我的断点进行导航?

我正在使用 IntelliJ 13.1.2

是的,我的 GWT 模块使用超级开发模式设置:

<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>

编辑:

也可以,我在最新版 Chrome 中使用 Jetbrains javascript 调试插件。

我可以通过转到代码服务器页面从我的代码服务器手动访问我的源映射...使用 IntelliJ 插件我转到 http://localhost:9876/sourcemaps/MyApp/ 并看到源代码。

看看配置在 IntelliJ 中的样子可能会很有用。

【问题讨论】:

如果源映射是从代码服务器创建和加载的,这应该是可能的。 【参考方案1】:

您使用什么作为应用服务器?您可能还必须在应用程序服务器参数中的某处指定代码服务器端口。

【讨论】:

对于 Jetty,将“-Dgwt.codeserver.port=9876”添加到 VM 参数应该可以工作。 对我没有任何改变。【参考方案2】:

DevMode 和 Super DevMode 之间最重要的区别之一是执行代码的环境。 JVM 在 DevMode 中执行您的 GWT 模块,因此 IDE 可以像通常的 Java 应用程序一样对其进行调试。关于 Super DevMode 的坏消息是 Chrome 会执行您的 GWT 模块,因此 IDE 不知道您在 Chrome Dev Tools 中设置的断点。 如果您在 Chrome Dev Tools 中的断点无法正常工作,我认为这是一个错误,应该是 reported。

【讨论】:

不,这是不正确的。有一个 Eclipse 插件 github.com/sdbg/sdbg 和一个 intellij Idea 功能,可以连接到 chroe 浏览器并再次进行远程调试。 @ChristianKuetbach 那个插件叫什么名字? 我在我的其他评论中发布了指向该插件的链接。我认为它在市场上还没有,但你可以使用更新 url。【参考方案3】:

尝试文件 -> 使缓存无效并重新启动。

【讨论】:

不幸的是,这似乎没有帮助。 我认为这会有所改变。我现在可以使用源映射在 Chrome 中打开我的所有项目文件,而之前我只能打开其中的一小部分。不知道你的建议是否如此,但现在我可以了。

以上是关于GWT SuperDevMode 断点不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 GWT 2.7 中使用 SuperDevMode 时如何获取完整的 StackTrace?

我在 tomcat 上部署了 GWT,现在 RPC 不起作用

当我更改端点时,GWT RPC 调用不起作用

在GWT 2.7中使用SuperDevMode时如何获得完整的StackTrace?

GWT RPC 调用在编译模式下不起作用

使用 ListDataProvider 在 GWT DataGrid 中手动设置 rowCount 不起作用?