Note: these instructions are for pre-Sierra MacOS. Sierra (10.12) and newer users see https://gist.github.com/gravitylow/fb595186ce6068537a6e9da6d8b5b96d by @gravitylow
If you are getting this in gdb on OSX while trying to run a program:
Unable to find Mach task port for process-id 57573: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))
- Open Keychain Access
- In the menu, open Keychain Access > Certificate Assistant > Create a certificate
- Give it a name (e.g.
gdbc
)- Identity type: Self Signed Root
- Certificate type: Code Signing
- Check: let me override defaults
- Continue until it prompts you for: "specify a location for..."
- Set Keychain location to System
- Create a certificate and close assistant.
- Find the certificate in System keychains, right click it > get info (or just double click it)
- Expand Trust, set Code signing to
always trust
- Restart taskgated in terminal:
killall taskgated
- Enable root account:
- Open System Preferences
- Go to User & Groups > Unlock
- Login Options > "Join" (next to Network Account Server)
- Click "Open Directory Utility"
- Go up to Edit > Enable Root User
- Run
codesign -fs gdbc /usr/local/bin/gdb
in terminal: this asks for the root password - Disable root account (see #10)
Done!
I'm following these instructions step by step. After step 6, the certification fails stating "the specified item could not be found in the keychain". I'm using High Sierra 10.13.3. Can anyone help me?