我正在 Cortex M4 上运行 C++,我想开始进行自动化单元测试和覆盖率。
gcov
写入其输出文件 - .gcno, .gcda
- 在目标上,这是不行的,因为我没有文件系统。
问题
是否可以使用
gdb
“拦截并重定向”这些写入到 PC?
我想通过 Python 脚本自动化这些测试:
所以,我不知道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 中实现此目的。
我还没有尝试过,所以如果它有帮助(或者没有),请务必留下标记以帮助未来的读者。
您可以尝试一种称为半主机的技术:然后文件 I/O 通过调试探针重定向到主机。