我在Mac OS X v10.8.3上通过{{1}}安装了Ruby 2的开发版本,并使用它来编译我正在研究的gem。我有一个内存问题我想调试。不幸的是,每当我在rbenv
的上下文中运行valgrind
,gdb
或cgdb
时,我都会得到像这样的whole bunch of errors:
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
获得series of likely-related errors。以下是示例:
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
。 Here is the output.
我是否可以通过某种方式指示gdb
将调试符号放在他们无法清理的地方?
我使用GCC 4.7.1,我通过自制软件安装。我确切的Ruby版本字符串是rbenv
,我的ruby 2.1.0dev (2013-04-01 trunk 40029) [x86_64-darwin12.3.0]
版本是0.4.0。
答案 0 :(得分:1)
根据ruby-build的文档:
ruby-build和rbenv install都接受-k或-keep标志,告诉ruby-build在安装后保留下载的源代码。如果您需要在Ruby中使用gdb和memprof,这将非常有用。
请尝试ruby-build install X -k
,其中X是版本号。