13

过去几天我一直在 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 如果冻结:/

4

2 回答 2

10

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

它现在对我有用

于 2012-05-04T01:37:57.140 回答
5

我正在使用 Emacs 24.1,它是我在 Mac OSX Lion (10.7.4) 上从 Savannah git 的源代码构建的。该构建基于 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,现在它运行良好。我使用 gdb 启动,然后使用该命令M-x gdb加载我想要调试的应用程序。file当我键入run时,它会提示我输入密码,让开发人员工具控制另一个进程。给我密码后,它运行良好。它在断点处停止,它跟随带有边缘箭头的代码,如果转到 Gud > GDB-MI > 显示其他窗口,它会显示其他带有信息的窗口。

于 2012-06-23T18:53:37.290 回答