함수를 호출하는 라이브러리가 있습니다. 예 : malloc. 내 응용 프로그램에서 라이브러리를 사용합니다. 라이브러리에서 malloc을 호출하지 말고 malloc이 호출 될 때마다 "mymalloc"을 정의한 함수를 원합니다. 간단히 말해서 다른 이름을 가진 내 심볼을 사용하여 malloc 심볼을 해결하고 싶습니다.함수 이름 앨리어싱
나는이 링커 옵션 시도: -Wl를, - defsym = malloc에 = mymalloc
그리고 그것은 그러나 다만 즉 응용 프로그램에있는 통화에 대한 작동 : 프로그램의 모든 malloc가 해결 mymalloc하지만 라이브러리의 호출은 여전히 stdlibc malloc을 호출합니다.
고마워, 다비드
실현 가능성은 컴파일 된 라이브러리인지 헤더 전용 라이브러리인지에 따라 달라집니다. 이게 뭐야? – stefan
왜'malloc' 함수를 호출 할 수 없습니까? 또는'mymalloc'에 위임 한'malloc'을 작성 하시겠습니까? 'calloc','realloc','memalign'과'free'를 대체해야 할 수도 있습니다 (https://sourceware.org/ml/libc-help/2012-04/msg00060.html에 따라) – davmac
malloc 라이브러리의 구현. 일부 라이브러리는 memoery 할당에 연결하여 사용자 정의 할당자를 제공합니다. 귀하가 이것을 지원한다면 링커에서 해커없이 원하는 결과를 얻을 수 있습니다. : http://linux.die.net/man/3/malloc_hook – Will