Per prima cosa dovrei notare che sto usando macOS Sierra (versione 10.12 beta 16A238m), ma non penso che sia diverso da El Capitan in questa determinata situazione (ma suppongo che tu sappia più di quello che faccio a riguardo, oppure non sarei qui adesso a fare questa domanda)
Così ho installato GDB (The GNU Debugger) per seguire un libro che sto leggendo ("Hacking: The Art of Exploitation"), che spiega solo come usare GDB, quindi non posso usare LLDB. L'ho installato usando Homebrew ( brew install gdb
), e tutto ha funzionato bene. Fino a quando l'ho usato.
Ho compilato il mio codice sorgente C utilizzando clang -g hello_word.c -o hello_world
(è solo un semplice programma C "Hello, World!"), Quindi eseguo gdb -q hello_world
, ed ecco la sessione:
Chens-MacBook-Pro:C chenjian$ gdb -q hello_world
Reading symbols from hello_world...Reading symbols from /Users/chenjian/Documents/Coding/Projects/RandomDev/C/hello_world.dSYM/Contents/Resources/DWARF/hello_world...done.
done.
(gdb) list
1 #include <stdio.h>
2
3 int main() {
4 printf("Hello, World!\n");
5 }
(gdb) break main
Breakpoint 1 at 0x100000f6f: file hello_world.c, line 4.
(gdb) run
Starting program: /Users/chenjian/Documents/Coding/Projects/RandomDev/C/hello_world
Unable to find Mach task port for process-id 42492: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))
Quindi ho cercato su Google un po 'di codesign e ho trovato questo . Così ho seguito le istruzioni (eccetto quelle per Snow Leopard), e ancora non funziona! Qualcuno sa come posso farlo funzionare?