在Mac OS X上安装Emacs 24和GDB 6.3

13

我最近几天一直在尝试在OS X Lion上使用Emacs 24(pretest 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。使用Xcode的GDB 6.3的行为保持不变。 GDB-7.4更糟糕,因为它启动了GDB,而emacs使用了100%的CPU,但现在我无法做任何其他事情。 Emacs被冻结了:/


这可能是一个授权问题而不是代码签名问题。这里是LLVM的lldb使用的授权 - jww
2个回答

11

我试图使用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

现在它对我来说可行


谢谢,就像你一样,证书对我来说也没什么用。干得好! - Codie CodeMonkey
太好了!chgrp和chmod起作用了。我现在可以在10.6.8上使用GDB了。 - AGS
提到的sourceware.org链接解决了我的问题。谢谢。 - bitbyter

5
我正在使用我自己在Mac OSX Lion(10.7.4)上构建的Emacs 24.1源代码,构建基于emacs-24.1标签,并应用了Lion全屏支持补丁。
对我来说,Gdb 6.3的工作方式很奇怪。它抱怨-i = mi标志,并在每个命令提示符之前打印一个奇怪的时间戳,将(gdb)推到右边,使其非常难以使用。完成功能也不起作用,可能还有其他破损的东西,我没有进一步调查。
使用homebrew / dupes tap中的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时,它会提示输入我的密码以允许开发者工具控制另一个进程。输入密码后,它正常运行。它会停在断点处,跟随着箭头在边缘中的代码,如果转到Gud > GDB-MI > Display Other Windows,它会显示其他窗口中的信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接