最近在做测试,需要动态加载so。测试用例跑调试全部通过。为了做覆盖率,在编译选项中添加-fprofile-arcs -ftest-coverage参数,但是在编译so时,也用了该选项。重新编译后运行测试用例,竟然崩溃了!
刚开始还以为同事在定位问题的时候把用例改了,确认后发现代码没有修改,他环境跑没有问题。gdb后发现问题的调用栈出现在gcov上,并且是在so的代码中。于是怀疑是不是制作so的时候加入了覆盖率编译选项的问题,去掉后重新制作,运行测试码后好了!
为什么呢?目前悬而未决。。。。
最近在做测试,需要动态加载so。测试用例跑调试全部通过。为了做覆盖率,在编译选项中添加-fprofile-arcs -ftest-coverage参数,但是在编译so时,也用了该选项。重新编译后运行测试用例,竟然崩溃了!
刚开始还以为同事在定位问题的时候把用例改了,确认后发现代码没有修改,他环境跑没有问题。gdb后发现问题的调用栈出现在gcov上,并且是在so的代码中。于是怀疑是不是制作so的时候加入了覆盖率编译选项的问题,去掉后重新制作,运行测试码后好了!
为什么呢?目前悬而未决。。。。