2016-06-17 4 views
0

설정 : 툴체인 : GCC-팔 - 없음 - EABI-5_2-2015q4-20151219 대상 : STM429i - 디스코 보드STM 검색 보드에서 Nuttx OS를 사용하여 테스트 응용 프로그램에서 gcov를 실행하는 방법은 무엇입니까?

나는 아래 링크를 따라 대상에서 생성 된 실시간 보고서를 gcov를 실행하고 싶어

: https://mcuoneclipse.com/2014/12/26/code-coverage-for-embedded-target-with-eclipse-gcc-and-gcov/

첫째, 성공적으로 내 코드를 컴파일 -fprofile-호 내 SRC 파일에 대한 .gcno 파일을 생성있어 & & -ftest 커버리지 플래그 (POSIX는 NUTTX OS 준수).

초는 -fprofile-arcs 플래그를 사용 가능하게 설정하고 libgcov.a 파일 (툴 체인의 일부)을 사용하여 최종 바이너리가 생성됩니다.

이제 테스트 신청서에 gcov를 호출하기 위해 어떤 변경이 필요한지 알지 못합니다. & 덤프 보고서를 생성하십시오.

또 다른 문제는 gcov 함수가 libgcov.a의 HIDDEN 속성과 함께 있다는 것입니다.
9 : 00000000 4 FUNC GLOBAL HIDDEN 1 __gcov_flush
9 : 00000000 4 FUNC GLOBAL HIDDEN 1 __gcov_init

내가 필요로하는, 그래서 내가 호출 할 수 없었다.

생성 된 .gcda 파일을 가져 오는 데 필요한 모든 정보가 큰 도움이됩니다.

답변

0

대신 gcov_exit을 찾을 수 있습니까? __gcov_flush과 유사합니다. 일반적으로 gcov_exit__gcov_flush 중 하나이며 그 중 하나를 사용할 수 있습니다.

이 파일이 없거나 숨겨져있는 경우 내 프로젝트 중 하나를 시도한이 방법을 사용할 수 있습니다. 나는 gcov_exit을 gcc 소스 코드 (내 toolchain과 일치하는 버전) (https://github.com/reeteshranjan/libgcov-embedded에서 사용 가능)에서 가져 와서 내 프로젝트에 연결했다. 나머지는 모두 (컴파일러 플래그 등) 동일하게 남은 상태에서 gcov_exit으로 침입하여 언급 한 블로그 링크의 나머지 방법을 따르십시오.

관련 문제