J'ai installé gdb 8.1 avec brew.
J'ai codesign gdb aussi et .gdbinit comme ci-dessous:
set startup-with-Shell off
.
J'ai désactivé la fonction SIP:
$ csrutil status
System Integrity Protection status: disabled.
Mais gdb ne fonctionne toujours pas:
#include <iostream>
using namespace std;
int main() {
cout << "hello world!" << endl;
return 0;
}
Commande de compilation:
g++ -g test.cpp
sortie gdb:
GNU gdb (GDB) 8.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-Apple-darwin17.3.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos Word" to search for commands related to "Word"...
Reading symbols from a.out...Reading symbols from /Users/mypc/Downloads/a.out.dSYM/Contents/Resources/DWARF/a.out...done.
done.
(gdb) run
Starting program: /Users/mypc/Downloads/a.out
[New Thread 0x2503 of process 802]
[New Thread 0x2303 of process 802]
During startup program terminated with signal ?, Unknown signal.
(gdb)
Quelles étapes correctes pour que gdb fonctionne sur macos sierra?
Ceci est dû à la dernière version de gdb 8.1, la rétrogradation de gdb à 8.0.1 pourrait résoudre ce problème.
brew unlink gdb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9ec9fb27a33698fc7636afce5c1c16787e9ce3f3/Formula/gdb.rb
brew pin gdb
dans mon cas, le passage à la version 8.0.1 n'a pas aidé.
mais les étapes suivantes ont aidé.
(J'ai inséré l'étape 12, "vérifiez si cela fonctionne", car au lieu de redémarrer, j'ai testé gdb et tout fonctionnait bien. Je n'ai pas suivi les étapes 12+)
gdb-cert
) killall taskgated
codesign -fs gdb-cert /usr/local/bin/gdb
command-R
jusqu'à ce que le logo Apple apparaisse)csrutil enable --without debug
la source d'information:
pre Sierra: https://Gist.github.com/hlissner/898b7dfc0a3b63824a70e15cd0180154
Sierra: https://Gist.github.com/gravitylow/fb595186ce6068537a6e9da6d8b5b96d
J'utilise macOS 10.13.6 et j'avais le même problème que "(vérifiez que gdb est signé par code - voir taskgated (8))" ...
Lorsque j'ai abaissé la GDB de la version 8.2.1 à la version 8.0.1, puis créé et signé à nouveau le gdb-cert, cela a tout simplement fonctionné.
N'oubliez pas de changer le chemin de gdb de 8.2.1 à 8.0.1 dans le débogueur d'Eclipse, redémarrez et cela fonctionnera.