如何让rbenv继续调试符号?

时间:2013-05-07 19:56:58

标签: ruby gdb valgrind rbenv dsym

我在Mac OS X v10.8.3上通过{​​{1}}安装了Ruby 2的开发版本,并使用它来编译我正在研究的gem。我有一个内存问题我想调试。不幸的是,每当我在rbenv的上下文中运行valgrindgdbcgdb时,我都会得到像这样的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 targetHere 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。

1 个答案:

答案 0 :(得分:1)

根据ruby-build的文档:

  

ruby​​-build和rbenv install都接受-k或-keep标志,告诉ruby-build在安装后保留下载的源代码。如果您需要在Ruby中使用gdb和memprof,这将非常有用。

请尝试ruby-build install X -k,其中X是版本号。