2011-04-08 3 views
0

지도 파일에서 함수의 절대 경로를 가져 오는 방법이 있습니까? 지도 파일 지원 형식은 다음과지도 파일 함수 경로

0001:000016a0  func     00000001400026a0 f lib:func.o 

이 상황에 따라 유용하지 않을 수 있습니다

답변

0

"FUNC"의 절대 경로를 얻을 수있는 방법이 있나요하지만, 일부 링커는 여러 오브젝트 파일을 가지고 지원하지 않습니다 다른 디렉토리에서 같은 이름. 그래서 some_directory/func.o와 some_other_directory/func.o를 그들에게 주면, 그들 중 하나만 링크됩니다. 나는 CodeWarrior가 이것을 알고 있습니다.

이 문제를 피하기 위해 모든 개체 파일에 고유 한 이름이 있는지 확인합니다. 내가 사용하는 규칙은 모듈 이름의 약어 (예 : func_module.o)를 포함합니다. 해당 규칙을 사용하면 오브젝트 파일을 쉽게 식별 할 수 있습니다. 또는 프로그래밍 방식으로 처리해야하는 경우 파일 검색 기술로 충분합니다.

일부 Visual Studio 버전에서는 .c 및/또는 .cpp 파일의 구성에 관계없이 모든 개체 파일을 단일 디렉터리에 저장하고 충돌을 피하기 위해 숫자 접미사를 자동으로 추가합니다. 어떤 오브젝트 파일이 어떤 .c 파일로 이동하는지 알아 내려면 프로젝트 파일을 읽어야합니다.

+0

나는 당신이 옳다고 생각합니다. Map 파일은 obj 파일에서 데이터를 가져오고 일반적으로 공통 디렉토리에 저장됩니다. 그래서 나는 C 파일의 절대 경로를 얻을 수 없을지도 모른다. –