스레드가 Pthread 뮤텍스/스핀 록과 동기화 된 경우 pthread_mutex_lock()
및 pthread_mutex_unlock()
에 대한 호출을 쉽게 바꿀 수 있습니다 (예 : LD_PRELOAD
). 이는 로깅/디버깅에 매우 유용 할 수 있습니다.gcc의 기본 내장 함수를 래핑 할 수 있습니까?
원자가 내장 된 gcc와 비슷한 것을 수행 할 수 있습니까? 예 : __sync_fetch_and_add
?
나는 우리에게 LD_PRELOAD
을 줄 수 없을 것이라고 생각하지만, 아마도 다른 메커니즘이있을 것입니다.
내장 함수는 직접 기계 명령어로 변환됩니다. 라이브러리 함수 호출이 아닙니다. –
예, 알고 있습니다. 그러나 아마도 gcc는 이러한 함수를 감쌀 수있는 컴파일 플래그 나 다른 방법을 제공합니다. – danyhow
'__sync' 내장 명령은 '유산'입니다. 보다 최근의 ['__atomic'] (http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html#g_t_005f_005fatomic-Builtins) 내장물을 고려해보십시오. –