2017-12-26 3 views
2

clang sanitizers가 오류를 발견 할 때 호출되는 일종의 콜백을 설정할 수 있습니까? 필자는 테스트 이름과 같은 유용한 정보를 인쇄해야합니다.clang sanitizer 콜백 오류 on

P. 테스트는 C++이 아닌 XML 파일로 저장/저장되므로 스택 추적에서 실패한 테스트 이름을 알려주지 않습니다.

답변

2

__sanitizer_set_death_callback__asan_set_error_report_callback (asan_interface.h에 선언 된)이 있습니다.

willir이 지적한대로 ASAN_OPTIONS=abort_on_error=1으로 실행하는 것으로 충분할 수도 있습니다. 이로 인해 Asan은 오류시 abort을 호출하게되고 많은 단위 테스트 프레임 워크는 실패한 테스트를 건너 뛰고 실행을 계속할 수 있습니다.

+1

답변 해 주셔서 감사합니다. 많은 경우에 단지'ASAN_OPTIONS = abort_on_error' 환경 변수로 충분하다고 덧붙이고 싶습니다. 그것은 새니 타이 저가'_exit' 대신'abort'를 호출하도록 처리합니다. 대부분의 테스트 프레임 워크는 이미'중단 '을 처리합니다. – willir

+0

@willir 동의, 좋은 지적. – yugr