내 프로그램에서 사용할 glibc를 수정하려고합니다. mmap 함수에 몇 가지 코드를 추가하려고합니다 (mmap 시스템 호출이 아니라 mmap 시스템 호출을 수행하는 glibc의 함수). 그러나 소스 코드 디렉토리 안에 여러 mmap 또는 mmap64.c 파일이 있습니다.컴파일러에서 컴파일되는 함수의 위치를 알아 보는 방법
내 아키텍처는 x86-64이므로 다른 아키텍처 디렉토리의 파일은 무시했습니다. 그러나, 나는 컴파일러가 사용하고있는 파일로부터 mmap을 모른다. 의도적으로 mmap 함수를 포함하는 다른 파일에 일부 가비지 코드 (컴파일러에서 오류가 있음)를 삽입했지만 컴파일러는 오류를주지 않고 glibc를 잘 컴파일합니다. 내가 만든 .o 파일도 볼 수 있습니다. 나는 무엇을 해야할지 잘 모릅니다. 컴파일러가 컴파일하는 mmap을 결정하는 쉬운 방법은 무엇입니까?
은, GDB는 어떤 심볼 테이블이로드되지 않습니다 말했다. file 명령을 사용하십시오. – pythonic
@ user1018562 "심볼 테이블이로드되지 않았습니다"- 디버그 정보가없는'libc.so.6'에 GDB를 실행하지 마십시오. 방금 작성한 사본에서 실행하십시오. –
글쎄, 나는 -O2 최적화로 컴파일했다. 나는 이것이 작동하도록 -g 플래그와 최적화가 이루어지지 않아야한다고 생각한다. 권리? – pythonic