18.AndroidLogcat堆栈跟踪实用窗口

18.调试相关-AndroidLogcat-堆栈跟踪实用工具


18.1 知识点

堆栈跟踪实用工具的作用

目前我们使用Android Logcat连接真机进行测试时,打印、警告、报错等信息都会直接在主窗口中打印出来让我们进行分析。相当于它帮助我们进行了自动的堆栈跟踪解析。

什么是自动堆栈跟踪解析呢?就是我们可以在打印窗口看到具体是哪个脚本的哪行代码出现了打印、警告、报错等信息。

例如下图中,改成调试模式后构建运行,点击测试按钮可以看到123123是从什么堆栈打印的。

而Tools(工具)中的Stacktrace Utility(堆栈跟踪实用工具)的作用是允许我们复制粘贴自定义日志并解析堆栈跟踪。

主要用于没有真机连接设备调试时,或者之后正式发布版本后,我们可以获取应用程序日志信息,将这些日志信息复制到该工具中用于翻译(一般项目会在崩溃后,在本地存储一份崩溃日志,我们可以获取该日志)。

因为这种情况下的日志信息中,不会明确指明是哪个脚本哪行代码,往往是一堆看不懂的符号,我们可以使用该工具进行翻译。

比如:下面这个打印信息就是安卓的原始日志:

E CRASH   :      #01  pc 01c65330  /data/app/com.CrashComp.Crash-J2Z_L0XSsSAZPkt9lab2rQ==/lib/arm/libunity.so
(DiagnosticsUtils_Bindings::ForceCrash(DiagnosticsUtils_Bindings::ForcedCrashCategory, ScriptingExceptionPtr*)+48)

这里面都是一堆特殊符号,并没有明确告诉你哪个脚本哪行代码。通过翻译后堆栈跟踪实用工具翻译后,我们就能够获取到哪个脚本哪行代码打印了输出了该信息。

总而言之,该工具就是用来翻译发布后安卓应用程序的日志信息的。

打开Stacktrace Utility窗口

堆栈跟踪实用工具的使用

A:堆栈跟踪显示相关

Original:初始日志
是一个输入框,想要被翻译的日志内容可以将内容粘贴到下方的输入区域。

Resolved:已解析的日志
翻译后的内容将会显示在该页签下方的区域。

B:堆栈跟踪实用程序设置相关

  • Resolve Stacktraces:解析堆栈跟踪
    点击后,将会翻译初始日志,会自动跳转到Resolved已解析的日志页签。

  • Configure Regex:配置正则表达式
    堆栈解析实用工具使用正则表达式来解析内容,默认是包含解析内容的地址、库名的正则表达式的,不需要我们设置,除非有特殊需求才会添加自定义正则表达式。

  • Configure Symbol Paths:配置符号路径
    我们需要指定安卓包文件的路径,3个重要包文件为:

    • libmain.so
    • libunity.so
    • libil2cpp.so(il2cpp模式时需要使用)

so文件相当于就是Windows下的dll库文件,里面包含所有代码信息。想要进行翻译就必须设置so文件的路径。
点击后会跳转到ProjectSetting中的AndroidLogcatSetting中,可以添加符号路径,这样就使用了默认路径下的so。

打包时选择Createsymbol.zip为Debugging模式下的话,打包出来的应用程序会有多出来的zip,解压里面其实就是so库,也可以在AndroidLogcatSetting使用这里的so,就可以使用翻译功能。


总结

使用堆栈跟踪实用工具的作用是可以翻译自己获取到的安卓日志信息。使用流程是:

  1. 设置项目的so文件路径。
  2. 将日志信息复制到Original(初始)页签中。
  3. 点击Resolve Stacktraces(解析堆栈跟踪)。
  4. 在Resolved(已解析的日志)页签中查看翻译结果。

注意:我们在电脑连接安卓设备通过Android Logcat进行调试时一般不使用该功能,只有当非连接调试时,获取了安卓崩溃日志后才会使用该功能。



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏