Emacs 24 и GDB 6.3 для Mac OS X

Я тестировал Emacs 24 (предварительный тест 24.0.95.1) на OS X Lion в течение последних нескольких дней, но я сталкиваюсь с некоторыми проблемами с новым интерфейсом gdb/MI.

С GDB 6.3, который поставляется с Xcode, но интерфейс gdb/MI вообще не загружается. Кажется, он пытается запустить режим GDB GUD, но команды не работают.

Я также попытался установить GDB-7.4 через Homebrew. Это меня отчасти отчасти. появляется интерфейс gdb-many-windows, но подсказка gdb никогда не появляется. Emacs просто сидит там, потребляя 100% процессор, но все же не перестает отвечать на запросы. Я все еще могу открыть файлы и т.д. Я просто ничего не могу сделать с GDB.

Кто-нибудь еще сталкивается с подобными проблемами? Могли ли вы разрешить их, и если да, то как?


Edit: 2012-06-10: Я просто попробовал снова с выпущенным Emacs 24.1. Поведение с GDB 6.3 (через Xcode) остается неизменным. GDB-7.4 немного хуже в том, что он запускает GDB, а emacs использует 100% процессор, но теперь я не могу ничего сделать. Emacs if frozen:/

Ответ 1

Я попытался использовать способ модификации сертификации Keychain.app с

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

Он все еще жалуется на сертификацию.

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))

Затем я попытался:

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

И он работает для меня сейчас.

Ответ 2

Я использую Emacs 24.1, который я построил на Mac OSX Lion (10.7.4) из источников в Savannah git. Эта сборка основана на теге emacs-24.1 и имеет патч для поддержки полноэкранного режима Lion.

Gdb 6.3 работает для меня странно. Он жалуется на флаг -i = mi, и он продолжает печатать странную временную метку перед каждой командной строкой, нажимая (gdb) вправо и делая ее очень трудной в использовании. Завершения не работают, а также могут быть другие вещи, которые я не беспокоил, исследуя гораздо дальше.

Использование gdb 7.4 из homebrew/dupes tap при попытке запустить gdb из Emacs получило ту же ошибку, описанную в ссылке, о которой упоминалось Firegun, 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))

Однако я следил за каждым описанным здесь шагом, чтобы создать сертификат и подписать gdb, и теперь он работает нормально. Я запускаю gdb с помощью M-x gdb, а затем загружаю приложение, которое я хочу отлаживать, используя команду file. Когда я набираю run, он запрашивает мой пароль, чтобы позволить средствам разработчика взять под контроль другой процесс. После моего пароля он работает нормально. Он останавливается на контрольных точках, он следует за кодом со стрелками в бахроме, а если перейти в Gud > GDB-MI > Display Other Windows, он отобразит другие окна с информацией.