Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: fix doc17 display issue #37

Merged
merged 1 commit into from
Aug 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions 16-incomplete_data_output_when_using_profiling_function.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
# 使用Profiling功能时可能遇到的一些问题
# 使用 Profiling 功能时可能遇到的一些问题

目前使用 Profiling 功能可能遇到一些问题,记录如下:
* **问题1**:日志打印中报片上内存不足,没有充足空间存放 gprof/gcov 数据
* **问题2**:采用串口输出的方式收集数据,打印被冲掉,Console 或 Terminal 收集的数据不全,导致数据解析失败,不能生成`gmon.out`文件或者`*.gcno`文件
目前使用 Profiling 功能可能遇到一些问题,记录如下:
* **问题1**:日志打印中报片上内存不足,没有充足内存来存放 gprof/gcov 数据
* **问题2**:采用串口输出的方式收集数据,打印被冲掉,Console 或 Terminal 收集的数据不全,导致数据解析失败,弹出 No files have been generated 错误弹框
* **问题3**:删掉 `gmon.out` 文件,再次解析时,弹出 No files have been generated 错误弹框

### 问题1:日志打印中报片上内存不足,没有充足空间存放 gprof/gcov 数据
### 问题1:日志打印中报片上内存不足,没有充足内存来存放 gprof/gcov 数据

gprof/gcov data 需要存到片上内存上,需要占用片上内存空间(几十到几百KB不等),占用内存的大小与用例规模有关,需要确保片上内存足够大。
gprof/gcov data 需要存到片上内存上,占用内存的大小与用例规模有关(几十到几百KB不等),需要确保片上内存足够大。

![Alt text](asserts/images/16/overflow.png)



### 解决方案

首先需要确认软件配置的内存大小与硬件实际大小相匹配(ilm/sram/flash/ddr/),可以使用内存大一点的下载方式(如 `DOWNLOAD=ddr`)。

修改软件配置的内存大小,与硬件实际大小相匹配:
首先需要确认软件配置的内存大小与硬件实际大小相匹配(ilm/sram/flash/ddr/),否则需要适配软件链接脚本内存布局:
比如,如果是 `DOWNLOAD=ilm` 模式下载,可以按硬件的 ilm 与 dlm 大小适配。
对于 nuclei sdk 0.6.0 版本,修改的文件为`nuclei-sdk/SoC/evalsoc/Board/nuclei_fpga_eval/Source/GCC/gcc_evalsoc_ilm.ld`

Expand All @@ -31,25 +29,27 @@ MEMORY
}
~~~

如果 `DOWNLOAD=ilm` 模式内存不足,可以使用内存大一点的下载方式(如 `DOWNLOAD=ddr`)。

### 问题2:Console 或 Terminal 收集的数据不全导致数据解析时失败

在 NucleiStudio 2024.06 中,当选择使用串口输出的方式使用 Profiling 功能时,可能遇到在使用 `Parse and Generate Hexdump` 解析数据时时没有生成对应的 `gmon.out` 文件或者 `*.gcno` 文件。这可能是因为串口数据被冲掉,导致数据不完整,从而解析失败
在 NucleiStudio 2024.06 中,当选择使用串口输出的方式使用 Profiling 功能时,可能使用 `Parse and Generate Hexdump` 解析数据时弹出 No files have been generated 错误弹框,最后没有生成对应的 `gmon.out` 文件或者 `*.gcno` 文件。这可能是因为串口数据被冲掉,导致数据不完整从而解析失败
![generated_fail](asserts/images/16/generated_fail.png)

确认方法:需确保串口打印开始时的打印没有被冲掉,参考[一个例子用来展示Profiling以及Code coverage功能](17-an_example_to_demonstrate_the_use_of_profiling_and_code_coverage.md)
**确认方法:**
需确保串口开始时的打印没有被冲掉,参考[一个例子用来展示Profiling以及Code coverage功能](17-an_example_to_demonstrate_the_use_of_profiling_and_code_coverage.md)

![parse_profiling_fail](asserts/images/16/parse_profiling_fail.png)

### 解决方案
因为在Console或者Terminal中,对输出的内容条数有限制,当输出的内容长度超过限制时,前面的内容会被冲掉,导致内容不完整,这样会解析失败。

需要调节 Console 或 Terminal 输出大小限制,确保数据没有被冲掉。为了更方便的使用 Profiling 功能,可以将 Console 和 Terminal 中对输出内容的上限做修改。

* 建议将Console中输出内容条限修改为不受限制。
需要调节 Console 或 Terminal 输出大小限制,确保数据没有被冲掉。
* 建议将Console中输出内容条限修改为不受限制。
Window->Preference 进入如下界面:
![config_console_limit](asserts/images/16/config_console_limit.png)

* 建议将Terminal中输出内容条限修改为一个较大的值。
* 建议将Terminal中输出内容条限修改为一个较大的值。
Window->Preference 进入如下界面:
![config_terminal_limit](asserts/images/16/config_terminal_limit.png)

Expand All @@ -63,5 +63,5 @@ Window->Preference 进入如下界面:

### 解决方案

手动删掉 gmon.out 文件后,需要手动刷新一下工程。
手动删掉 gmon.out 文件后,需要手动刷新一下工程。
![refresh_project](asserts/images/16/refresh_project.png)
Loading
Loading