0
지난 2 년 동안 gcc-4.8.2와 ASAN을 아무런 문제없이 사용하고있었습니다. LSAN과 같은 새로운 기능을 사용하기 위해 gcc-5.2로 옮겼습니다. 와 응용 프로그램을 구축 한 후 GCC-5.2는 충돌로 이어지는 더 이상 __cxa_throw을 가로 챌 수없는, 상세과 아산을 실행 한 후이 발견은 = 1gcc-5.2가있는 ASAN이 예외를 가로 챌 수 없음
==11314==AddressSanitizer: failed to intercept '__isoc99_printf'
==11314==AddressSanitizer: failed to intercept '__isoc99_sprintf'
==11314==AddressSanitizer: failed to intercept '__isoc99_snprintf'
==11314==AddressSanitizer: failed to intercept '__isoc99_fprintf'
==11314==AddressSanitizer: failed to intercept '__isoc99_vprintf'
==11314==AddressSanitizer: failed to intercept '__isoc99_vsprintf'
==11314==AddressSanitizer: failed to intercept '__isoc99_vsnprintf'
==11314==AddressSanitizer: failed to intercept '__isoc99_vfprintf'
==11314==AddressSanitizer: failed to intercept 'backtrace'
==11314==AddressSanitizer: failed to intercept '__cxa_throw'
==11314==AddressSanitizer: libc interceptors initialized
|| `[0x10007fff8000, 0x7fffffffffff]` || HighMem ||
|| `[0x02008fff7000, 0x10007fff7fff]` || HighShadow ||
|| `[0x00008fff7000, 0x02008fff6fff]` || ShadowGap ||
|| `[0x00007fff8000, 0x00008fff6fff]` || LowShadow ||
|| `[0x000000000000, 0x00007fff7fff]` || LowMem ||
MemToShadow(shadow): 0x00008fff7000 0x000091ff6dff 0x004091ff6e00 0x02008fff6fff
redzone=16
max_redzone=2048
quarantine_size=256M
malloc_context_size=30
SHADOW_SCALE: 3
SHADOW_GRANULARITY: 8
SHADOW_OFFSET: 7fff8000
==11314==Installed the sigaction for signal 11
==11314==T0: stack [0x7ffd377ce000,0x7ffd37fce000) size 0x800000; local=0x7ffd37fcb63c
==11314==AddressSanitizer Init done
그리고 네 우리는 정적으로 된 libstdc 링크 ++하지만이 문제 아니었다 gcc-4.8.2 ASAN은 모든 것을 제대로 가로 챌 수있었습니다.
여기에 질문이 없습니다. – melpomene
죄송합니다.이 문제를 해결하는 방법을 아는 사람이 있습니까? –
실행 환경에 대한 설명과 함께 최소한의 "작업"예제를 게시 할 수 있습니까? – Tim