내 앱은 정상적으로 실행되지만 gdb는 다음 오류로 디버깅하지 못합니다.
(gdb) run
Starting program: /path/to/app
Unable to find Mach task port for process-id 83767: (os/kern) failure (0x5).
OS X Lion을 사용하고 있습니다. GDB 버전은
$ gdb --version
GNU gdb 6.3.50-20050815 (Apple version gdb-1752) (Sat Jan 28 03:02:46 UTC 2012)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".
답변
Snow Leopard 및 이후 Mac OS 버전에서는 gdb
실행 파일 을 공동 디자인하는 것만으로는 충분하지 않습니다 .
이 안내서를 따라 작동시켜야합니다. http://www.opensource.apple.com/source/lldb/lldb-69/docs/code-signing.txt
이 안내서에서는이를 수행하는 방법을 설명 lldb
하지만 프로세스는 동일합니다 gdb
.
답변
내가로 변경하면 작동합니다 sudo gdb executableFileName
! 🙂
답변
인증서를 작성하고 gdb에 서명해야합니다.
- “키 체인 액세스”응용 프로그램 열기 (/ 응용 프로그램 / 유틸리티 / Keychain Access.app)
- 메뉴 열기 / 키 체인 접근 / 인증서 보조 / 인증서 생성 …
- 이름 (예에서 gdb-cert)을 선택하고 “Identity Type”을 “Self Signed Root”로 설정하고 “Certificate Type”을 “Code Signing”으로 설정 한 다음 “Let me override defaults”를 선택하십시오. “계속”을 클릭하십시오. 사전 정의 된 365 일 기간을 3650 일로 연장 할 수 있습니다.
- “인증서 위치 지정”화면이 나타날 때까지 “계속”을 여러 번 클릭 한 다음 “키 체인을 시스템”으로 설정하십시오.
- 인증서를 “시스템”키 체인에 저장할 수 없으면 “로그인”키 체인에 인증서를 작성한 다음 내보내십시오. 그런 다음이를 “시스템”키 체인으로 가져올 수 있습니다.
- 키 체인에서 “시스템”을 선택하면 새 인증서를 찾을 수 있습니다. 인증서의 상황에 맞는 메뉴를 사용하여“정보 입수”를 선택하고“신뢰”항목을 연 다음“코드 서명”을“항상 신뢰”로 설정하십시오.
- 현재 실행중인 “taskgated”프로세스를 종료하여 인증서를 사용하고 “taskgated”서비스를 다시 시작하려면 “Keychain Access”응용 프로그램을 종료해야합니다. 또는 컴퓨터를 다시 시작할 수 있습니다.
-
마지막으로 gdb에 서명 할 수 있습니다 :
sudo codesign -s gdb-cert /usr/local/bin/ggdb
sudo ggdb ./myprog
답변
문제는 원하지 않는 루트 사용자로 로그인하지 않았다는 것입니다. 액세스 할 수 있도록 gdb에 대한 인증서를 작성해야합니다. 이 튜토리얼을 따라 가면 좋을 것입니다 …
http://sourceware.org/gdb/wiki/BuildingOnDarwin
다른 모든 방법이 실패하면 다음을 사용하십시오. sudo gdb executableFileName
답변
이 링크 에는이 오류가 사라지게하는 가장 명확하고 자세한 단계별 설명이 나와 있습니다.
내 경우에는 “시스템”키로 키를 가져야했습니다. 그렇지 않으면 작동하지 않습니다 (모든 URL이 언급하지는 않음).
또한 taskgated
킬 ( killing) 은 다시 시작해야하는 실행 가능한 대안입니다.
또한 MacPorts를을 제거 나는이 과정을 시작하여 현재 GDB를 제거하기 전에 brew uninstall gdb
.
답변
El Capitan에서 작동하려면이 명령이 필요했습니다.
sudo security add-trust -d -r trustRoot -p basic -p codeSign -k /Library/Keychains/System.keychain ~/Desktop/gdb-cert.cer