如何找到调用某个函数的地方?

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 modificationattribute modifications 上休息。为此,请右键单击 DOM 树中的元素。特别是您认为正在应用更改的那个。从那里你会得到一个上下文菜单,它会给你这些选项。选择其中一个并设置 DOM 断点。

如果这触发了调试器,您可以使用 F11shift + F11 跳过函数(如果您在 jQuery 之类的库中结束,这很有用)。执行此操作时,请注意 call stack。这会告诉你代码来自哪里..

更深入的信息:

https://developer.chrome.com/devtools/docs/javascript-debugging

【讨论】:

【参考方案2】:

要了解函数的调用者,只需在它的第一行设置一个断点。一旦断点被​​命中,您就可以在堆栈跟踪中看到它被调用的位置。

Firefox 开发工具

萤火虫

Chrome 开发者工具

【讨论】:

【参考方案3】:

如果您可以访问脚本,则可以在要观看的每个函数的末尾添加:

console.trace()

这将在 Chrome 的控制台中输出已调用的函数及其在文件中的位置(行号)

【讨论】:

以上是关于如何找到调用某个函数的地方?的主要内容,如果未能解决你的问题,请参考以下文章

sql server 查询db中都有哪些地方调用了某个sp

如何使用 Promise Kit 调用递归函数?

keil4怎么定义函数

我如何知道内联函数是不是在被调用的地方被实际替换?

我们如何在需要协程的地方调用普通函数?

在代码中获取调用者函数的名字