2012-04-19 12 views
12

Ich habe Emacs 24 (Pretest 24.0.95.1) in den letzten Tagen auf OS X Lion getestet, aber es gibt einige Probleme mit der neuen gdb/MI-Schnittstelle.Emacs 24 und GDB 6.3 unter Mac OS X

Mit GDB 6.3, die mit Xcode kommt, aber die gdb/MI-Schnittstelle scheint nicht zu laden. Es scheint zu versuchen, den GDB GUD-Modus zu starten, aber keine Befehle funktionieren tatsächlich.

Ich habe auch versucht, GDB-7.4 über Homebrew zu installieren. Das bringt mich teilweise dorthin. Die gdb-many-windows-Schnittstelle erscheint, aber die gdb-Eingabeaufforderung kommt nie an. Emacs sitzt einfach nur da und isst 100% CPU, reagiert aber trotzdem nicht. Ich kann immer noch Dateien öffnen usw. Ich kann mit GDB nichts anfangen.

Hat noch jemand ähnliche Probleme? Konnten Sie sie lösen, und wenn ja, wie?


Edit: 2012-06-10: Ich habe es gerade noch einmal mit dem neu veröffentlichten Emacs 24.1 versucht. Das Verhalten mit GDB 6.3 (über Xcode) bleibt gleich. GDB-7.4 ist etwas schlechter, da es GDB startet, und emacs verbraucht 100% CPU, aber jetzt kann ich nichts mehr machen. wenn Emacs gefroren:/

+0

Dies könnte eher ein Berechtigungsproblem als ein Codesignproblem sein. Hier sind die Berechtigungen [LLLM's lldb verwendet] (http://github.com/llvm-mirror/lldb/blob/master/tools/debugserver/source/debugserver-entitlements.plist). – jww

Antwort

7

Ich habe versucht, die Art und Weise zu verwenden, von ändern Zertifizierung durch Keychain.app von

http://sourceware.org/gdb/wiki/BuildingOnDarwin

Es beschwert sich immer noch über die Zertifizierung ..

GNU gdb (GDB) 7.4 
Copyright (C) 2012 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-darwin11.3.0". 
For bug reporting instructions, please see: 
<http://www.gnu.org/software/gdb/bugs/>... 
Reading symbols from /Users/hanfei/Documents/mis/mis...Reading symbols from /Users/hanfei/Documents/mis/mis.dSYM/Contents/Resources/DWARF/mis...done. 
done. 
(gdb) r 
Starting program: /Users/hanfei/Documents/mis/mis 
Unable to find Mach task port for process-id 52327: (os/kern) failure (0x5). 
(please check gdb is codesigned - see taskgated(8)) 

Dann habe ich versucht:

$ sudo chgrp procmod /yourpath/gdb 
$ sudo chmod g+s /yourpath/gdb 

Und es w Orks für mich jetzt.

+0

Danke, wie Sie das Zertifikat hat es nicht für mich getan. Gut gemacht! –

+0

Großartig!Die chgrp und chmod funktionierten. Ich kann jetzt GDB auf 10.6.8 – AGS

+0

verwenden Die Lösung erwähnte den sourceware.org Link, der für mich arbeitete. Vielen Dank. –

4

Ich benutze Emacs 24.1, die ich selbst auf Mac OSX Lion (10.7.4) aus den Quellen in Savannah git gebaut habe. Der Build basiert auf dem Tag emacs-24.1 und es wurde ein Patch für die Vollbildunterstützung von Lion angewendet.

Gdb 6.3 funktioniert seltsam für mich. Es beschwert sich über das Flag -i = mi und es druckt einen seltsamen Zeitstempel vor jeder Eingabeaufforderung, die (gdb) weit nach rechts schieben und es wirklich schwer zu bedienen machen. Vervollständigungen funktionieren nicht so gut und es könnte andere Dinge geben, die ich nicht weiter untersuchen würde.

die GDB 7.4 von Homebrew Verwendung von/dupes tippen, wenn gdb von Emacs zu laufen versuchen, in dem Link beschrieben den gleichen Fehler hatte, dass Firegun erwähnt, http://sourceware.org/gdb/wiki/BuildingOnDarwin:

Starting program: /x/y/foo 
Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5). 
(please check gdb is codesigned - see taskgated(8)) 

jedoch folgte ich jeden Schritt beschrieben Dort erstellen Sie ein Zertifikat und signieren gdb und jetzt läuft es gut. Ich beginne gdb mit M-x gdb und dann laden Sie die App, die ich debuggen wollen mit dem file Befehl. Wenn ich run gebe, fordert es mein Kennwort an, damit Entwicklerwerkzeuge die Kontrolle über einen anderen Prozess übernehmen können. Nachdem ich mein Passwort eingegeben habe, läuft es gut. Es stoppt an Breakpoints, es folgt dem Code mit Pfeilen im Rand, und wenn Sie zum Gud> GDB-MI> Display Other Windows gehen, werden die anderen Fenster mit Informationen angezeigt.