我在 Mac OS X v10.8.3 上安装了 Ruby 2 的开发版本rbenv
,并使用它来编译我正在研究的 gem。我有一个要调试的内存问题。不幸的是,每当我运行valgrind
,gdb
或cgdb
在 a 的上下文中rake spec
,我都会收到一大堆像这样的错误:
warning: Could not find object file "/private/var/folders/5f/h1s00nhn0rv4ckkpg4k_bwhr0000gn/T/ruby-build.20130331232604.54521/ruby-2.0.0-dev/main.o" - no debug information available for "main.c".
显然,那个ruby-build
目录已经不存在了。
我从. _ valgrind
以下是示例:
--2564-- /Users/jwoods/.rbenv/versions/2.0.0-dev/lib/libyaml-0.2.dylib:
--2564-- dSYM directory is missing; consider using --dsymutil=yes
如果我尝试使用该--dsymutil=yes
选项,我会收到与以下错误基本相同的错误gdb
:
warning: (x86_64) /private/var/folders/5f/h1s00nhn0rv4ckkpg4k_bwhr0000gn/T/ruby-build.20130331232604.54521/ruby-2.0.0-dev/ext/openssl/ossl_bn.o unable to open object file
根据另一个问题的答案,我试着在info target
里面跑gdb
。这是输出。
有什么方法可以指示rbenv
将调试符号放在不会被清理的地方吗?
我正在使用通过自制软件安装的 GCC 4.7.1。我确切的 Ruby 版本字符串是ruby 2.1.0dev (2013-04-01 trunk 40029) [x86_64-darwin12.3.0]
,我的rbenv
版本是 0.4.0。