加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 堆栈跟踪和反向跟踪之间有什么区别?

发布时间:2020-12-16 19:13:15 所属栏目:百科 来源:网络整理
导读:我真的虽然我在网上找到答案,但我不能.有什么不同吗?人们说抛出异常会产生’回溯’,而堆栈跟踪是从应用程序启动时到抛出异常的点的方法调用列表.如果我们将堆栈跟踪视为数组,则最后一个元素将是抛出异常的方法.回溯的情况是否相反?例如,在像 Ruby这样的编
我真的虽然我在网上找到答案,但我不能.有什么不同吗?人们说抛出异常会产生’回溯’,而堆栈跟踪是从应用程序启动时到抛出异常的点的方法调用列表.如果我们将堆栈跟踪视为数组,则最后一个元素将是抛出异常的方法.回溯的情况是否相反?例如,在像 Ruby这样的编程语言中,如果我们有:
begin
  raise 1
rescue
  p $!.backtrace ; p caller(0) #=> displays the back-trace,then the stack-trace
end

他们将输出2个不同的数组,这对我来说,它们有一些根本不同的东西.

解决方法

“Backtrace”,“堆栈跟踪”,“堆栈回溯”等都是同一个名称的名称. “Backtrace”特别可能来自同名的Linux工具.堆栈跟踪不仅仅涉及异常 – 程序调用堆栈的当前状态始终可以显示为堆栈跟踪(回溯可以显示,但许多调试器视图和工具也是如此).在异常或错误期间输出堆栈跟踪很有帮助.

编辑:哎呀,以为我还在’C’标签 – 但是看看文档,Exception.backtrace和调用者都应该保持数组,其中调用堆栈的顶部是数组中的第一个.它们的深度和格式存在差异.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读