Tag: gdb

在Ruby解释器段错误之后,是否有可能从核心文件中获取Ruby回溯?

注意:我使用的是我在使用libxml-ruby gem时遇到的段错误来说明问题,但我已经修复了我所说的gem的问题。 这个问题的真正意义在于从gdb和核心文件查看Ruby回溯(即解释器在Ruby代码无法处理exception时打印的内容),解释器本身遇到分段错误。 在生成XML文档的过程中,我遇到了一个奇怪的段错误: /railsroot/vendor/isolated/ruby-1.8/gems/libxml-ruby-1.1.2/lib/libxml/node.rb:123: [BUG] Segmentation fault ruby 1.8.7 (2011-02-18 patchlevel 334) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2011.03 Aborted 更新1:此分段也在vanilla Ruby(MRI)下进行。 我已经打开了corefiles并查看了gdb中的backtrace(参见问题的结尾)。 我可以看到解释器崩溃的地方,谷歌搜索导致了许多有希望的结果 。 除了解释器回溯之外,我还想看到的是Ruby代码本身的回溯(即从解释器的角度来看的回溯)。 我希望在gdb中加载核心将允许我调用一些解释器函数来打印出解释代码的堆栈。 有任何想法吗? 对于好奇的人来说,这是核心和回溯: : foo@bar; ulimit -c unlimited : foo@bar; RAILS_ENV=production ./script/runner script/feeds/batchfeed.rb –config config/feeds/$feed.yml –timer /tmp/$feed.timer –gzip –output /tmp/$feed.xml.gz /railsroot/vendor/isolated/ruby-1.8/gems/libxml-ruby-1.1.2/lib/libxml/node.rb:123: [BUG] Segmentation fault ruby 1.8.7 (2011-02-18 patchlevel […]