【发布时间】:2014-01-17 00:00:51
【问题描述】:
是否可以在任何 Web 调试器中将所有 javascript 函数调用视为树?
更新
我的意思是调试器可以记住每个函数调用,它是从哪个其他函数完成的,它还可以记住每个调用的堆栈帧和整个 DOM 快照。
更新 2
以下页面代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Trace and log all javascript functions calling tree/graph?</title>
<script type="text/javascript">
function init() {
setDiv2("This div text was changed once");
setDiv2("This div text was changed twice");
};
function setDiv2(text) {
document.getElementById("div2").innerHTML = text;
}
window.onload = init;
</script>
</head>
<body>
<h1>Trace and log all javascript functions calling tree/graph?</h1>
<p><a href="http://stackoverflow.com/questions/20910262/trace-and-log-all-javascript-functions-calling-tree-graph">Stack Overflow Question #20910262</a></p>
<div id="div1">This div will not changed</div>
<div id="div2">This div text will change</div>
<div>
<h2>The call graph should be follows</h2>
</div>
</body>
</html>
应该给出以下调用图
因为setDiv2() 函数被调用了两次。
在分析器的自上而下视图中可见
setDiv2() 函数绘制一次。这对分析很有用,但这不是调用图。
所以问题仍然存在。
更新 3
此外,用户应该能够踩到每个树节点,并看到所有变量的值以及当前整个DOM树的状态,由节点表示。
【问题讨论】:
-
请检查 Google Chrome 开发控制台的功能
-
@JanDvorak 我看不到我正在寻找的功能。
-
检查CPU profiler,特别是
-
@JanDvorak CPU 分析器看起来不像我想要的那样。可能是我弄错了,但那里的调用看起来像是按消耗时间排序并按功能分组(因为它应该在分析器中)。我需要整个调用图,其中调用按执行顺序排序,每个函数都表示它被调用的次数。
-
共有三种视图:自顶向下(函数及其被调用者)、自底向上(函数及其调用者)或火焰图(每个函数调用由放置在其调用者上的矩形表示,长度代表时间)。俯视图不是你想要的吗?
标签: javascript debugging web