如何在裸机上运行 gcov(无文件系统)

问题描述 投票:0回答:2

我正在 Cortex M4 上运行 C++,我想开始进行自动化单元测试和覆盖率。

gcov
写入其输出文件 -
.gcno, .gcda
- 在目标上,这是不行的,因为我没有文件系统。

问题

是否可以使用

gdb
“拦截并重定向”这些写入到 PC?

我想通过 Python 脚本自动化这些测试:

  1. 从数据库获取单元测试
  2. 编译
  3. 转移到目标板
  4. 奔跑
  5. 将结果重定向到 PC
c++ c gdb gcov jtag
2个回答
0
投票

所以,我不知道gcov,谢谢。

快速查看

man gcov
表明我的系统上有它并且存在以下选项:

-t, --stdout                    Output to stdout instead of a file

我已经有一段时间没有使用Python了,但是你应该能够创建一个仅内存文件,并且假设打开的文件句柄是8,使用:

gcov -t [whatever you are doing] >&8

-t 参数告诉 gcov 打印到标准输出而不是写入文件,并且 >&8 覆盖 stdout (如执行的程序所见)为文件句柄 8 而不是 1 (在大多数 unix/posix/whateveryoucallit 上,无论如何)。

当然是在 bash 中,您可以从 python 调用它,也可以转码以在 python 中实现此目的。

我还没有尝试过,所以如果它有帮助(或者没有),请务必留下标记以帮助未来的读者。


0
投票

您可以尝试一种称为半主机的技术:然后文件 I/O 通过调试探针重定向到主机。

© www.soinside.com 2019 - 2024. All rights reserved.