过去几天我一直在OS X Lion上尝试Emacs 24(预测试24.0.95.1),但是我遇到了新gdb / MI界面的一些问题。
使用Xcode附带的GDB 6.3,但gdb / MI界面似乎根本没有加载。它似乎尝试启动GDB GUD模式,但实际上没有命令工作。
我还尝试通过Homebrew安装GDB-7.4。这让我部分在那里。 gdb-many-windows界面显示,但gdb提示永远不会到达。 Emacs只是坐在那里吃了100%的CPU,但却没有反应迟钝。我仍然可以打开文件等。我只是无法用GDB做任何事情。
还有其他人遇到过类似问题吗?你能解决它们吗?如果有,你怎么解决?
编辑:2012-06-10:我刚刚尝试了新发布的Emacs 24.1。 GDB 6.3(通过Xcode)的行为保持不变。 GDB-7.4略差,因为它启动了GDB,而emacs耗尽了100%的CPU,但现在我无法做任何其他事情。 Emacs如果被冻结:/
答案 0 :(得分:8)
我尝试使用来自
的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
现在我工作。
答案 1 :(得分:4)
我正在使用Emacs 24.1,我是从Savannah git中的源代码在Mac OSX Lion(10.7.4)上构建的。该版本基于emacs-24.1标记,并具有应用Lion全屏支持的补丁。
Gdb 6.3对我来说很奇怪。它抱怨-i = mi标志并且它在每个命令提示符之前保持打印一个奇怪的时间戳,将(gdb)
推向右边并使其真正难以使用。完成不起作用,可能还有其他东西被打破,我没有进一步调查。
使用来自homebrew / dupes的gdb 7.4,当尝试从Emacs运行gdb时,得到了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,现在运行正常。我使用M-x gdb
启动gdb,然后使用file
命令加载我要调试的应用程序。当我输入run
时,它会提示我输入密码,让Developer Tools控制另一个进程。在给出我的密码后它运行正常。它在断点处停止,它在条纹中用箭头跟随代码,如果转到Gud&gt; GDB-MI&gt;显示其他Windows,它显示其他带有信息的窗口。