如何找到调用某个函数的地方?
Posted
技术标签:
【中文标题】如何找到调用某个函数的地方?【英文标题】:How to find the place where a certain function is called? 【发布时间】:2015-03-20 04:03:02 【问题描述】:我正在编写一个网页,我需要在其中做一些小改动。问题是,我需要找到调用某个函数的地方(有很多 javascript 文件,所以我无法逐行浏览它们)。你有什么想法,我怎样才能找到它?
我知道如何在 Firebug 或类似的浏览器控制台中进行逐步调试,但我仍然不知道如何识别调用函数的位置。
我更喜欢在 Firefox 或 Chrome 中使用控制台。
【问题讨论】:
【参考方案1】:Chrome 调试提示:
您可能有多种方法可以找出更改的来源。但是在跟踪 DOM 中的更改时,我发现这个可以节省时间。 (这通常会引导我找到我正在寻找的功能)
在 subtree modification
或 attribute modifications
上休息。为此,请右键单击 DOM 树中的元素。特别是您认为正在应用更改的那个。从那里你会得到一个上下文菜单,它会给你这些选项。选择其中一个并设置 DOM 断点。
如果这触发了调试器,您可以使用 F11 和 shift + F11 跳过函数(如果您在 jQuery 之类的库中结束,这很有用)。执行此操作时,请注意 call stack
。这会告诉你代码来自哪里..
更深入的信息:
https://developer.chrome.com/devtools/docs/javascript-debugging
【讨论】:
【参考方案2】:要了解函数的调用者,只需在它的第一行设置一个断点。一旦断点被命中,您就可以在堆栈跟踪中看到它被调用的位置。
Firefox 开发工具
萤火虫
Chrome 开发者工具
【讨论】:
【参考方案3】:如果您可以访问脚本,则可以在要观看的每个函数的末尾添加:
console.trace()
这将在 Chrome 的控制台中输出已调用的函数及其在文件中的位置(行号)
【讨论】:
以上是关于如何找到调用某个函数的地方?的主要内容,如果未能解决你的问题,请参考以下文章