了解chrome javascript stacktrace

时间:2015-05-07 11:47:33

标签: javascript google-chrome-devtools stack-trace

关于以下javascript stacktrace,我有几个问题。

  1. 为什么堆栈跟踪有两个部分:第一个在顶部是红色,第二个在黑色下面?
  2. at开头的第一行是什么意思?即at angular.js:63:为什么它不像其他行那样引用函数/方法调用?
  3. 如何订购?底部的线条出现在顶部的线条之前吗?
  4. javascript stacktrace

2 个答案:

答案 0 :(得分:3)

  1. 红色的位是异常/错误消息 - 在这种情况下,它看起来像Angular抛出异常,并且作为该异常的一部分,它已将堆栈跟踪的内容添加到消息中,而黑位是堆栈跟踪浏览器遇到未处理的异常时会得到的跟踪。
    1. 发生错误的状态的第一行 - 脚本名称和行号 - 如果您在第63行查看angular.js的来源,您将看到引发异常的语句。
    2. 它不是指函数调用,因为它是抛出异常的语句。获取该语句的唯一方法是通过一系列函数调用,然后以相反的顺序显示它们。
  2. 正确。例如,Scope.$apply函数调用Scope.$evalScope.$eval调用名为callback的函数等。

答案 1 :(得分:1)

Chrome使用v8引擎处理JavaScript。所以,我引用以下链接作为答案 - https://code.google.com/p/v8-wiki/wiki/JavaScriptStackTraceApi

  1. 我不确定回答这个问题。

  2. 第一行告诉我们发生错误的位置。对于像angular这样的框架,它可以在框架内部深处,而不必是用户代码。

  3. 是的,它是自下而上的,即从发生错误的位置向上向调用者,在本例中是jQuery事件调度。