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

时间:2019-06-24 20:08:06

标签: c++ c gdb gcov jtag

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

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

问题

是否可以使用gdb将这些写入“拦截并重定向”到PC?

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

  1. 从数据库获取单元测试
  2. 编译
  3. 转移到目标板
  4. 运行
  5. 将结果重定向到PC

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

所以,我不认识gcov,谢谢。

OBS_ENCODER_AUDIO的快速浏览显示我已经在系统上安装了它,并且存在以下选项:

man gcov

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

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

-t参数告诉g​​cov打印到标准输出而不是写入文件,并且>&8覆盖stdout(由执行的程序看到)为文件句柄8而不是1(在大多数unix / posix /无论如何,都可以。)

这当然是在bash中,您可以从python调用它,也可以将其转码为python,但是您可以在python中实现。

我没有必要尝试它,因此,如果有帮助(或没有帮助),请务必留下标记以帮助将来的读者。