2017-01-26 4 views
0

Windows에서 응용 프로그램을 개발하고 배포 할 때 개발자는 각 빌드의 일부로 컴파일러에서 생성 된 .pdb 파일을 로컬에 저장하고 충돌을 생성하기 위해 프로그램 호출 MiniDumpWriteDump을 생성 할 수 있습니다. dmp 파일은 나중에 개발자에게 다시 보낼 수 있습니다. 그런 다음 개발자는받은 .dmp 파일을 적절한 .pdb 파일과 실행 파일과 대조하여 충돌에 대한 사후 디버깅 (예 : 스택 추적 등)을 수행 할 수 있습니다.MacOS/X에는 Windows의 PDB 파일과 유사한 분리 된 디버그 정보 메커니즘이 있습니까?

설정 및 관리가 쉽지 않지만 개발자가 출시 된 프로그램에서 모든 디버그 정보를 제거하면서도 현장에서 발생하는 크래시를 디버깅 할 수 있다는 장점이 있습니다. 이렇게하면 프로그램의 설치 크기가 훨씬 작아지고 프로그램이 리버스 엔지니어링의 영향을 덜받습니다.

제 질문은 MacOS/X에 .pdb와 같은 종류의 메커니즘이 있습니까? MacOS/X에서 본 유일한 옵션은 실행 파일을 "스트립 (strip)"시켜서 작은 실행 파일을 만들지 만 충돌이 발생하면 디버그 정보를 거의 만들지 않거나 실행 파일을 제공하지 않는 것입니다. 충돌이 발생했을 때 도움이되는 오류보고, 그렇지 않으면 필요한 것보다 훨씬 큽니다).

답변

0

나는 dsymutil을 찾고 있습니다. 디버그 정보가 포함되어 실행되는 이진 파일의 이름을 가진 .dSYM 폴더를 만듭니다.

솔직히 말해서 실제로 사용한 적이 없습니다. 그리고 나는 원격 컴퓨터에서 필요한 스택 추적의 종류를 잘 모릅니다.

+0

충돌 한 스레드의 스택에서 어떤 함수 호출이 호출되는지 보여주는 스택 추적 (그리고 이상적으로는 충돌을 일으킨 코드 라인이 이상적입니다) –

+1

관련 스레드는 http://stackoverflow.com/questions/에 있습니다. 10044697/where-how-does-apples-gcc-store-dwarf-inside-an-실행 가능 파일 –