在 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
设置为PRETTY
或DETAILED
-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 超级开发模式不适用于 CssResource.style=obf
从GWT 2.7更新到2.8.1后不兼容的RemoteServiceException