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

Posted

技术标签:

【中文标题】在 GWT 2.7 中使用 SuperDevMode 时如何获取完整的 StackTrace?【英文标题】:How to get the full StackTrace when using SuperDevMode in GWT 2.7? 【发布时间】:2015-02-03 21:35:30 【问题描述】:

我使用 GWT 2.7 和超级开发模式。当遇到异常时,堆栈跟踪如下所示:

SEVERE: UncaughtExceptioncom.github.nmorel.gwtjackson.client.exception.JsonDeserializationException: Unknown property 'uploadImageId'
    at Unknown.AHc_g$(Unknown Source)
    at Unknown.vHc_g$(Unknown Source)
    at Unknown.OHc_g$(Unknown Source)
    at Unknown.VHc_g$(Unknown Source)
    at Unknown.aIc_g$(Unknown Source)
    at Unknown.gIc_g$(Unknown Source)
    at Unknown.rDc_g$(Unknown Source)
    at Unknown.qDc_g$(Unknown Source)
    at Unknown.vNb_g$(Unknown Source)
    at Unknown.nNb_g$(Unknown Source)
    at Unknown.oNb_g$(Unknown Source)
    at Unknown.pNb_g$(Unknown Source)
    at Unknown.gNb_g$(Unknown Source)
    at Unknown.fNb_g$(Unknown Source)
    at Unknown.$Cc_g$(Unknown Source)
    at Unknown.ZCc_g$(Unknown Source)
    at Unknown.zOm_g$(Unknown Source)
    at Unknown.anonymous(Unknown Source)
    at Unknown.ZDe_g$(Unknown Source)
    at Unknown.aEe_g$(Unknown Source)
    at Unknown.anonymous(Unknown Source)
    at Unknown.anonymous(Unknown Source)
    at Unknown.anonymous(Unknown Source)
    at Unknown.anonymous(Unknown Source)
    at Unknown.anonymous(Unknown Source)
    at Unknown.anonymous(Unknown Source)

我有一个 GWT 项目在我的 iPhone 上的 GWT-PhoneGap 环境中运行,我使用 Safari 控制台进行调试。

如何使用 SuperDevMode 对完整堆栈跟踪进行反混淆?

编辑:我还使用以下标志:

-XmethodNameDisplayMode Full 

它不起作用。

【问题讨论】:

从文档看来您可以使用命令行选项-XmethodNameDisplayMode EXPERIMENTAL: Specifies method display name mode for chrome devtools: NONE, ONLY_METHOD_NAME, ABBREVIATED or FULL (defaults to NONE) @Alex 我有一个 GWT 项目在我的 iPhone 上的 GWT-PhoneGap 环境中运行,我使用 Safari 控制台进行调试。它仍然不适用于此标志。 doc 表示此选项适用于“chrome devtools”。它应该与Safari一起使用吗?你试过 Chrome 吗? 上面写着(未知来源)。您是否在 GWT 项目中包含了源代码? 【参考方案1】:

尝试将编译器选项style 设置为PRETTYDETAILED

-style                         Script output style: DETAILED, OBFUSCATED or PRETTY (defaults to OBFUSCATED)

见GWT compiler options

【讨论】:

【参考方案2】:

从 GWT 2.7.0 开始,这是不可能的。你可能想关注this GWT bug。

-XmethodNameDisplayMode Full 仅适用于浏览器的开发工具。所以如果在源码中设置这个参数并设置断点,调用栈的方法名会在开发工具中正确显示。这不会影响日志输出产生的调用堆栈(这是您在问题中发布的内容)。

【讨论】:

以上是关于在 GWT 2.7 中使用 SuperDevMode 时如何获取完整的 StackTrace?的主要内容,如果未能解决你的问题,请参考以下文章

gwt 2.7 ie8空白页

GWT 2.7 超级开发模式不适用于 CssResource.style=obf

GWT 2.7 + GAE 应用程序在部署时寻找代码服务器

从GWT 2.7更新到2.8.1后不兼容的RemoteServiceException

GWT 2.7:-XjsInteropMode JS 和 -XjsInteropMode CLOSURE 有啥区别?

如何在 GWT 中使用 XMLHttpRequest?