.map 파일의 용도/MAP 매개 변수 또는 "맵 파일 생성"프로젝트 설정을 사용할 때 VC++ 링커가 생성하는 항목은 무엇입니까? 언제 제가 그 (것)들을 필요로하고 그 (것)들에게서 나는 어떻게 유익합니까?링커가 생성하는 .map 파일의 용도는 무엇입니까?
답변
지도 파일을 사용하여 충돌을 찾는 방법에 대한 멋진 기사입니다. 수동으로이 모든 일을
http://www.codeproject.com/KB/debug/mapfile.aspx
은 매우 재미있다.지도 파일을 읽을 수있는 도구를 알지 못하고 충돌 위치를 찾는 데 도움이됩니다. 아무도 우리를 업데이트하시기 바랍니다.
거의 필요하지 않지만 함수 및 데이터의 위치에 대한 정보를 제공하기 때문에 몇 가지 문제를 쉽게 디버깅 할 수 있습니다. 예를 들어
모든 세그먼트
- 상세 정보 (코드, 데이터 등).
- 링크 줄 번호는
당신은 디버깅 도구에 대한지도 파일을 사용할 수있는 코드입니다.
프로세스의 디스 어셈블리를 열고 원시 주소를 검사하는 것과 같은 의미입니까? – sharptooth
가능성이 있습니다. 내가 말했듯이, 당신은 그들을 거의 필요로하지 않습니다,하지만 당신이 그들을 필요로한다면, 당신은 그들이 기꺼이 사용할 수 있습니다. –
임베디드 시스템의 경우 맵 파일이 훨씬 유용합니다. (비록 Visual C++을 사용하지 않겠지 만)
프로그램/데이터 메모리가 어느 정도 떨어져 있는지와 특정 변수가있는 위치가 중요하다는 점이 중요합니다.
목록 파일과 비슷한 UNIX 플랫폼에 어떤 것이 있습니까? 그렇다면 어떻게 생성합니까? – Shree
잘 모르겠다. 컴파일러 설명서를 확인하십시오. –
WinDBG는 .hdmp 및 .mdmp 크래시 덤프를 분석 할 때 .map 및 .pdb 파일을 사용하여 충돌을 디버깅하는 데 도움을줍니다.
기본적으로 메모리 주소는 .exe (또는 .dll) 내의 함수 및 변수에 매핑됩니다. 일반적으로 매우 유용합니다.
편집 : "사실 이후"를 디버깅하는 가장 유용한 방법은 나를 위해 WinDbg를 사용하는 것입니다 (Windows 플랫폼). 열어서 크래시 덤프 열어. 그런 다음 코드 (있는 경우), .map 및 .pdb를 가리키는 심볼 경로 및 .exe 로의 이미지 경로를 가리 키도록 소스 경로를 설정하고 명령 줄에 "! analyze -v"를 입력하십시오 . 이제는 코드 라인과 모든 것을 포함한 전체 스택 트레이스를 갖게되었습니다.
경로에 MS 기호 서버가 있고 전체 페이지 힙이 켜져 있거나 adplus가 실행중인 경우 더 좋습니다. 내 두 좋아하는 WinDbg는 자원 참조 :
먼저 정지 :: http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx
강제 기호를 ::로드를 http://www.osronline.com/ShowThread.cfm?link=182377
유용한 사이트 :: 추적해야 할 때 http://www.dumpanalysis.org/blog/index.php/category/windbg-tips-and-tricks/page/7/이
링커지도는 대형 프로젝트에 매우 유용 할 수 있습니다 컴파일 단위와 라이브러리 간의 종속성. 일반적으로 링커는 문제를 일으킨 심볼을보고하며, 흔히이 심볼 이름을 간단히 검색하면 아무런 결과도 반환되지 않거나 read
과 같은 심볼에 대해 오탐 (false positive)이 반환됩니다.
링커 맵이 없으면 일반적으로 사용할 수있는 모든 소스 파일을 분석하고 (매크로가 사용 된 경우 사전 처리 통과 후 일반적으로 발생 함) 관련된 지점을 찾기를 바랍니다.
링커 맵에는 일반적으로 프로젝트의 다른 개체 파일에 필요한 개체 파일과 정확히 참조 된 기호를 알려주는 "파일/기호 별 참조"섹션이 있습니다.
로캘 지원없이 시스템에서 이식해야하는 프로젝트에서 한 번 작업했습니다. 링커가 "_localeconv_r
에 대한 정의되지 않은 참조"오류를보고했는데 이는 소스를 검색하여 추적하는 데 어려움이있었습니다. 다행히도, -Map=output.map
으로 생성 된 GCC 링커 맵 파일은 단일 검색으로 모든 문제 기능을 나타 냈습니다.
- 1. Silverlight.js 파일의 용도는 무엇입니까?
- 2. * .pro 파일의 용도는 무엇입니까?
- 3. mongo.lock 파일의 용도는 무엇입니까?
- 4. .DDF 파일의 용도는 무엇입니까?
- 5. 메이크 파일의 용도는 무엇입니까?
- 6. Java와 관련하여 jvm.cfg 파일의 용도는 무엇입니까?
- 7. dll 옆에있는 xml 파일의 용도는 무엇입니까?
- 8. Silverlight 응용 프로그램에서 AppManifest.xaml 파일의 용도는 무엇입니까?
- 9. ASP.NET 처리기 (.ashx) 파일의 용도와 용도는 무엇입니까?
- 10. 런타임 링커가 solaris에서 실행 파일의 RPATH를 무시합니다
- 11. HtmlAgilityPack MixedCodeDocument의 용도는 무엇입니까?
- 12. 자바에서 파일의 해시를 생성하는 방법은 무엇입니까?
- 13. Office interop assembly와 관련된 XML 파일의 용도는 무엇입니까?
- 14. string.xml 및 arrays.xml의 용도는 무엇입니까?
- 15. .NET에는 링커가 있습니까?
- 16. Visual Studio MAP 파일의 잘못된 함수 주소
- 17. SO_REUSEADDR의 용도는 무엇입니까?
- 18. raisePropertyChanged 이벤트의 용도는 무엇입니까?
- 19. 인터페이스에서 속성의 용도는 무엇입니까?
- 20. 이 입력란의 용도는 무엇입니까?
- 21. _fread_nolock, _fseek_nolock의 용도는 무엇입니까?
- 22. 크로스 가입의 용도는 무엇입니까?
- 23. $$ jQuery에서이 용도는 무엇입니까?
- 24. 원자 방법의 용도는 무엇입니까?
- 25. Ackermann 함수의 용도는 무엇입니까?
- 26. 투명의 용도는 무엇입니까?
- 27. JavaFX 스크립트의 용도는 무엇입니까?
- 28. Joomla의 용도는 무엇입니까?
- 29. 코드의 용도는 무엇입니까?
- 30. TelephoneNumberUtil 클래스의 용도는 무엇입니까?
GNU Gas는'-a'로'.map' 파일을 생성합니다. –