2014-12-12 7 views
1

Windows에서 pdb 파일을 생성하여 별도의 디버그 정보 파일로 빌드하려고합니다. gobjdump를 사용하여 작은 hello world 프로그램 (testDebugging)에서 디버그 정보를 제거하고 설치하려고했습니다. 나는 이클립스를 사용하여 코드를 만들었고 바이너리는 정상적으로 작동했다.OSX gobjdump가 실행 파일을 손상시킵니다.

gobjcopy --strip-debug testDebugging을 실행하면 바이너리 크기가 줄어 듭니다. 그러나 이제는 바이너리를 실행하려고 할 때 "-bash : /testDebugging : 변형 된 Mach-o 파일"과 함께 실패합니다.

verbose 옵션이 켜져 있어도 오류 메시지가 없습니다. 그런 기본 기능이 왜 고장 났는지에 대한 정보가 있습니까? 버전 정보 : GNU objcopy (GNU Binutils) 2.24

명령은 다음과 같습니다.

. 다음 "foo는"...

 1.<Run "objcopy --only-keep-debug foo foo.dbg" to> 
      create a file containing the debugging info. 

     1.<Run "objcopy --strip-debug foo" to create a> 
      stripped executable. 

     1.<Run "objcopy --add-gnu-debuglink=foo.dbg foo"> 
      to add a link to the debugging info into the stripped 
      executable. 

답변

0

무엇 대신 dsymutil 사용에 대한?

$ xcrun dsymutil binfile -o binfile.dSYM 

(Xcode 명령 줄 도구를 사용하는 것으로 가정 함).

+0

감사합니다. 하지만이 후에 binfile에서 심볼을 제거하려면 어떻게해야합니까? 현재로서는 디버그 기호가 binfile에 남아 있기 때문에 이것이 작동하는지 테스트 할 수 없습니다. – Guru

+0

'strip' 명령 사용. – Droppy

+0

감사합니다. @Droppy. gobjcopy가 잘 작동하지 않는 것 같습니다. strip 명령이 잘 작동합니다. strip -S binfile – Guru