Release应用堆栈解析相关错误提示及解决措施
========================

在使用Release应用堆栈解析功能时，遇到的错误提示及解决措施如下所示。

| 
错误提示

 | 

问题原因

 | 

解决措施

 |
| :-- | :-- | :-- |
| 

Incorrect path format in line X

 | 

堆栈解析功能会将含有(路径:行号:列号)的堆栈识别为ArkTS堆栈进行解析，会对堆栈进行进一步的校验，路径不能含有运行系统下的不合法字符。如果输入的某行堆栈不满足上述形式，则会提示"Incorrect path format in line X"。

 | 

请排查输入堆栈是否满足“(路径:行号:列号)”的格式，若不满足应按照格式进行修改，并重新解析。

 |
| 

Failed to find the source file in line X

 | 

在不勾选Unscramble stack trace的情况下，会将堆栈默认为是当前工程产生的堆栈，从本工程中获取解析需要的文件，解析结果也会从当前工程中寻找源文件，如果不存在会提示"Failed to find the source file in line X"。

在勾选Unscramble stack trace的情况下，ArkTS堆栈解析结果是相对路径，不会去寻找源文件，so解析结果如果不存在会提示"Failed to find the source file in line X"。

 | 

如果解析结果不包含一个绝对路径，可以用“file”命令检查so是否包含debuginfo。

检查堆栈对应工程与所打开工程的是否一致，并检查堆栈对应的源文件是否存在。

如果是自提供的so文件，请确定是产生当前堆栈的so。

 |
| 

SourceMap error in line X

 | 

解析堆栈信息时，DevEco Studio需要sourceMap将堆栈中的bundle文件信息映射为源码信息。如果没有提供相应的sourceMap，或者sourceMap文件不一致，或堆栈被修改，导致堆栈与sourceMap不匹配。

出现上述情况则可能导致无法将堆栈中的信息映射为源码信息，此时会提示"SourceMap error in line X"。

 | 

检查所打开工程中的bundle文件与生成堆栈信息对应的bundle文件是否一致，如不一致，利用生成堆栈时的源码构建Release版本App，再进行堆栈解析。

如果是FA模型产生的堆栈，请在对应工程中不勾选Unscramble stack trace进行解析。勾选情况下，FA模型产生的堆栈无法匹配到源码信息。

 |
| 

So Error in Line X

 | 

解析堆栈信息时，DevEco Studio需要用so文件将so的堆栈映射为源码信息，如果没有提供对应的so，则可能导致无法将堆栈中的信息映射为源码信息，此时会提示"So error in Line X"。

 | 

请提供堆栈对应的so文件，确保so包含符号信息，可以使用"file"命令查看so是否为"not striped"。若so为"striped"，说明so的信息已被清除，可在模块级build-profile.json5中的debugSymbol->strip字段置为false。

 |
| 

Failed to find source data in line X

 | 

如果输入堆栈中存在字符串"Cannot get SourceMap info, dump raw stack:"，DevEco Studio则会将其所在行替换为："Error Line: +第一条解析成功的堆栈对应的源码数据"。

当第一条解析成功的堆栈对应的源码不存在时（比如源码可能已被修改），则会提示："Failed to find source data in line X："。

 | 

检查源码是否存在，如果不存在，将源码文件改为堆栈信息对应的源码文件。

 |
| 

Failed to find the bundle file in line X

 | 

未勾选Unscramble stack trace时，堆栈解析功能需要在打开对应工程并构建App对应Release版本的条件下使用。

对于输入的堆栈信息，DevEco Studio会根据对应工程类型的路径转换规则寻找堆栈对应的Release版本bundle文件，如果转换后的路径对应bundle文件不存在，则会提示"Failed to find the bundle file in line X："。

 | 

打开工程并构建对应App的Release版本，重新输入堆栈进行解析。

 |