如何直接从共享库初始化llvm覆盖率?

2024-06-10 10:00:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在测试C/C++共享库,在那里我编译了具有^ {CD1>}标志的库,并与^ {CD2>}标志链接。在

我正在通过cTypesPython例程加载并测试Python中的共享库。在

Gcda文件不会从python生成,因为我的python二进制文件没有与-fprofile-arcs -ftest-coverage标志链接。在

如果我从lldb/gdb运行python,那么gcda文件将生成为使用适当的覆盖标志编译lldb/gdb。在

是否可以调用适当的覆盖率函数来初始化轮廓弧,并在调用共享库中的函数之前测试覆盖率,然后调用适当的覆盖率关闭例程?在

我在我的库上做了一个nm,注意到了以下例程,但不知道如何调用它们。在

___llvm_gcov_init
___llvm_gcov_flush
___llvm_writeout_files

似乎llvm_gcov_init需要参数,所以我不能直接从python调用它。在

我想直接初始化代码覆盖率,而不需要在多台机器上重新编译覆盖率高的python。在


Tags: 文件函数init链接标志覆盖率例程llvm