【问题标题】:Breakpoint Is Not Getting Hooked in Eclipse with GWT Application断点在 Eclipse 中没有与 GWT 应用程序挂钩
【发布时间】:2017-02-25 16:51:37
【问题描述】:

我正在尝试在 Eclipse 中调试一个非常简单的 HTML GWT 模块,但是我的 EntryPoint 类中的断点没有被命中!我有以下设置:

  • GWT 版本:2.7
  • Eclipse 版本:Mars 4.5.2
  • Chrome 版本:53
  • 运行模式:超级开发模式(调试)

我的模块包含一个简单的 HTML 文件,其中包含一个 EntryPoint(这是众所周知的 HelloWorld)。当我执行 Run As Super Dev ModeDebug As Super Dev Mode 时,应用程序正常启动,并且我看到服务器和客户端的 URL 和端口没有错误。我可以导航到应用程序的 HTML URL 以查看简单的标签,如果我修改包含标签的 EntryPoint 类,甚至可以重新编译并查看更改。

我已将参数的日志级别设置为 DEBUG(查看大量加载各种模块),甚至选中标记为“调试为配置”以在主方法处停止。问题是,当我第一次以 Debug Super Dev Mode 运行应用程序以启动核心服务器时,我可以看到断点在 DevMode class' main() 方法中停止(不是之后虽然当我对EntryPoint 进行更改并通过刷新浏览器重新编译时)。但是当我在EntryPointonModuleLoad() 中设置断点时,它会被忽略!

如何让服务器挂钩我的EntryPoint

【问题讨论】:

    标签: eclipse debugging gwt


    【解决方案1】:

    在某些情况下,没有可用于 JavaScript 语句的代码。

    尝试使用:

    GWT.debugger();
    

    如果您使用调试器,它将始终停止。

    【讨论】:

    • 你真的需要包含那个方法调用吗?我可以简单地转到 Developer tools 中的 Chrome 的 Source 选项卡,然后在代码服务器上加载的 sourcemap 类中放置一个断点。
    • 即使在谷歌浏览器中,也可能存在断点,调试器不会停止。确保调试器停止的唯一方法是使用 GWT.debugger();这会生成一个 JavaScript 语句“debugger();”,它强制应用程序在调试模式下停止。在生产模式下,调试器语句被忽略。
    • 你能描述一下我应该把这个命令放在哪里吗?
    • 只需将其添加到您的源代码中,最好在您要调试的语句之前。
    • 一旦不再需要该语句,就应该删除它。但即使你忘记了,也没关系。编译生产时忽略 GWT.debugger()。
    猜你喜欢
    • 2011-07-01
    • 2012-07-03
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多