本文简要介绍ruby语言中 Fiber.backtrace
的用法。
用法
backtrace → array
backtrace(start) → array
backtrace(start, count) → array
backtrace(start..end) → array
返回光纤的当前执行堆栈。 start
、 count
和 end
允许仅选择部分回溯。
def level3
Fiber.yield
end
def level2
level3
end
def level1
level2
end
f = Fiber.new { level1 }
# It is empty before the fiber started
f.backtrace
#=> []
f.resume
f.backtrace
#=> ["test.rb:2:in `yield'", "test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'", "test.rb:13:in `block in <main>'"]
p f.backtrace(1) # start from the item 1
#=> ["test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'", "test.rb:13:in `block in <main>'"]
p f.backtrace(2, 2) # start from item 2, take 2
#=> ["test.rb:6:in `level2'", "test.rb:10:in `level1'"]
p f.backtrace(1..3) # take items from 1 to 3
#=> ["test.rb:2:in `level3'", "test.rb:6:in `level2'", "test.rb:10:in `level1'"]
f.resume
# It is nil after the fiber is finished
f.backtrace
#=> nil
相关用法
- Ruby Fiber.backtrace_locations用法及代码示例
- Ruby Fiber.schedule用法及代码示例
- Ruby Fiber.transfer用法及代码示例
- Ruby Fiber.new用法及代码示例
- Ruby Fiber.scheduler用法及代码示例
- Ruby Fiber类用法及代码示例
- Ruby FiberError类用法及代码示例
- Ruby File.identical?用法及代码示例
- Ruby FileUtils.mkdir用法及代码示例
- Ruby FileUtils.compare_file用法及代码示例
- Ruby FileUtils.options_of用法及代码示例
- Ruby File.dirname用法及代码示例
- Ruby FileUtils.ln_s用法及代码示例
- Ruby Fiddle.dlwrap用法及代码示例
- Ruby File.directory?用法及代码示例
- Ruby FileUtils.install用法及代码示例
- Ruby File.link用法及代码示例
- Ruby FileUtils.chown_R用法及代码示例
- Ruby File.expand_path用法及代码示例
- Ruby FileUtils.cp_lr用法及代码示例
- Ruby File.lstat用法及代码示例
- Ruby File.umask用法及代码示例
- Ruby FileUtils.rmdir用法及代码示例
- Ruby File.absolute_path?用法及代码示例
- Ruby FileUtils.rm_rf用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Fiber.backtrace。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。