在OS X v10.9中缺lessGDB(小牛)
我在OS X v10.9(Mavericks)中使用了GDB,但它不在那里。 它去了哪里?
# /usr/lib/gdb -bash: /usr/bin/gdb: No such file or directory # gdb -bash: gdb: command not found
我也推出了Xcode 5.0.1:
首选项>下载
..不再有命令行工具可用 – ffs!
gdb
已经被lldb
取代,不再被支持。 gcc
和llvm-gcc
也不见了,换成clang
。
你可以把它安装在小牛与家酿。
brew install homebrew/dupes/gdb
这个Homebrew命令的作用是在小牛上安装GDB工具:
brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gdb.rb
谢谢,我是。 我用你的./configure选项,像一个魅力。 下一步是告诉OS X我们允许GDB进行debugging。 这是通过钥匙串创build一个证书,导出它,然后sudo codesing -s gdb-cert /route/to/gdb
,提供证书,我们完成了。
请参阅GDB wiki的详细说明
我在Maverics的源码中编译了GDB。
我改变了makefile(在./configure之后)来抑制一些本来应该是警告的错误…(添加了-Wno-string-plus-int)
Line 385: CFLAGS = -g -O2 -Wno-string-plus-int Line 388: CXXFLAGS = -g -O2 -Wno-string-plus-int
不知道是否有必要。
但
事实certificate,标准版本不支持从.app文件进行debugging(如使用Carbon界面的Lazarus应用程序所需)
如果你想自己做这个链接: https : //sourceware.org/gdb/wiki/BuildingOnDarwin
按照这里给出的步骤,它工作正常: http : //wiki.lazarus.freepascal.org/GDB_on_OS_X_Mavericks_and_Xcode_5
在我的情况下,我通过以下步骤得到它在OS X上的工作:
-
设置GDB Homebrew就像这里描述的一样http://wiki.lazarus.freepascal.org/GDB_on_OS_X_Mavericks_and_Xcode_5
-
然后将debugging设置为Dwarf2 :Project – > Project Options ..
如果运行/生成挂起,然后重新启动计算机 (taskgated或一些其他进程证书最有可能未validation),debugging设置回到“自动(-g)”编译和运行 (validation对话框出现和login),然后更改debugging设置为“矮人2” ,它应该再次编译
尝试总是停止GDB时,如果它在运行操作后崩溃,以防止此身份validation失败。
你可以安装www.macports.org并安装GDB。 不过,你必须等待Mavericks的MacPorts安装程序,因为在写这篇文章的时候还没有发布。
当我看MacPorts的小牛尚未提供,但现在是!
芬克仍然不是。
但标准的GDB仍然不支持debugging.app文件。
运行它来安装命令行工具:
xcode-select --install
命令行utils不包含在新的Xcode中,但您可以按照这些说明来获取它。 (上面的Xcodeselect注释不适用于我。)
打开Xcode
在应用程序菜单项“Xcode”中,selectOpen Developer Tool → More Developer Tools …
这将带你到一个软件的网站。 继续下载并安装“用于Xcode的命令行工具(OS X Mavericks) – 2013年10月下旬”。
(信贷Jore https://discussions.apple.com/message/23513040#23513040 )
在Xcode 4.6中安装Mac OS X v10.8(Mountain Lion)并获得乐趣)))
我使用VMware Fusion,但您可以尝试免费的VirtualBox 。 你可以从苹果开发者网站的AppStore和老版本的Xcode获取旧版本的MacOS。
- 缺less单独的debuginfos,请使用:debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc ++ – 4.4.6-3.el6.i686
- 使用gdb在指定的可执行文件之外单步执行汇编代码会导致错误“找不到当前函数的范围”
- 如何传递参数并将stdin从文件redirect到程序在gdb中运行?
- 如何在gdb中附加一个进程
- GDB:列出崩溃进程的所有映射内存区域
- gdb中的多个命令以某种分隔符分隔“;”?
- 打印所有全局variables/局部variables?
- 我可以在GDB的“内存访问”中设置一个断点吗?
- 如何从程序中调用gdb来打印它的堆栈跟踪?