问题现象
unable to find mach task port for process-id *** (os/kern) failure (0x5)
(please check gdb is codesigned - see taskgated(8))
文章就暂不翻译了,一步一步看,Easy for U
code-signing.txt [plain text]
On MacOSX lldb needs to be code signed. The Debug and Release builds
are set to code sign using a code signing certificate named
lldb_codesign.
If you don’t have one yet you will need to:
- Launch /Applications/Utilities/Keychain Access.app
In Keychain Access select the “login” keychain in the “Keychains”
list in the upper left hand corner of the window.-
Select the following menu item:
Keychain Access->Certificate Assistant->Create a Certificate…
-
Set the following settings
Name = lldb_codesign
Identity Type = Self Signed Root
Certificate Type = Code Signing Click Continue
- Click Continue
- Click Done
- Click on the “My Certificates”
- Double click on your new lldb_codesign certificate
-
Turn down the “Trust” disclosure triangle
Change:
When using this certificate: Always Trust Enter your login password to confirm and make it trusted
The next steps are necessary on SnowLeopard, but are probably because of a bug
how Keychain Access makes certificates.
- Option-drag the new lldb_codesign certificate from the login keychain to
the System keychain in the Keychains pane of the main Keychain Access window
to make a copy of this certificate in the System keychain. You’ll have to
authorize a few more times, set it to be “Always trusted” when asked. - Switch to the System keychain, and drag the copy of lldb_codesign you just
made there onto the desktop. - Switch to Terminal, and run the following:
sudo security add-trust -d -r trustRoot -p basic -p codeSign -k /Library/Keychains/System.keychain ~/Desktop/lldb_codesign.cer
- Right click on the “lldb_codesign” certificate in the “System” keychain (NOT
“login”, but the one in “System”), and select “Delete” to delete it from
the “System” keychain. - Reboot
- Clean and rebuild lldb and you should be able to debug.
That should do it.
PS
最后记得加上这一句:
sudo codesign -s lldb_codesign /usr/local/bin/gdb