本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。