问题标签 [call-hierarchy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
164 浏览

c++ - 在本机 C++ 中查找直接或间接使用特定方法的所有方法

是否有任何工具可以发现 C++ 中特定方法的所有直接或间接方法使用情况。对于托管类,NDepend 执行“选择正在使用我的方法”的工作,但是我很难在本机类中做到这一点。Visual Studio 的调用层次结构可以生成这样的结果,但是它不能在我们庞大的代码库中扩展。我想要一个自动生成的报告。我想知道你们是否可以推荐一些工具。

0 投票
2 回答
936 浏览

java - 查找对象在哪个类中实例化

我正在尝试学习不必要的复杂源代码。有一个方法public void passObject(SomeObject someObject),我想知道是在哪个类someObject中实例化的。问题是,当我们向上遍历调用层次结构时,分支因子非常大。例如,三个方法可以someObject通过passObject,这三个方法之前的三个方法可以分别传递同一个对象。

是否有一些方法可以插入passObject,例如:

我用Eclipse.

0 投票
1 回答
2010 浏览

java - How to get all possible callers of a method in Java - like call hierarchy

Say I have a method m in a class. I'm trying to find all the methods that call m in the whole project. Similar to eclipse's call hierarchy tool, except I need it to output a list/array of Methods. I need it statically so I dont think a stack trace works. Is there any way to implement this, maybe using reflection?

I attached link to an example of Eclipse's call hierarchy tool, finding all the methods that mention the method barking() from the class Dog. (Dog.hungry() and Cat.scratching() call barking()).

Image

0 投票
0 回答
714 浏览

java - 在 Eclipse 的调用层次结构中包含 JSP 调用

如何让 Eclipse 调用层次结构支持 JSP 文件中的调用?

我是 Eclipse 的 Call Hierarchy 功能的狂热用户,因为它可以帮助我导航和查找方法或其他实体的所有调用源。但是我发现 Call Hierarchy 列表完全忽略了项目中的 JSP 文件,这使我的编码和调试变得困难。我必须依靠文本搜索工具来查找电话,或者(大多数情况下)只是冒着完全错过电话的风险。

出于某种原因,Eclipse 中对 JSP 的支持与其 Java 源代码文件对应物相比是不标准的,并且没有改进。目前这根本不可能吗?还是我错过了什么?

0 投票
2 回答
964 浏览

java - Eclipse - “打开调用层次结构”停止在 lambda 链中搜索

这是我的示例 java 代码:

methodDepth2()当我从 Eclipse(4.4) 打开方法的调用层次结构时,open call hierarchy停止搜索下一个调用者: 打开调用层次结构停止搜索下一个调用者方法

我所期望的就像打开方法的调用层次结构,methodDepth1()直到main方法显示。 打开方法 <code>methodDepth1()</code> 的调用层次结构,直到 <code>main</code> 方法显示

0 投票
1 回答
124 浏览

java - 确保一个方法的调用堆栈始终包含 Java 中的另一个方法

我在我们的 Java 项目中使用的一个通用实用程序中有一个设计问题,我想确保特定方法 A 的所有调用者都被另一个方法 B 包装。我今天编写的这段代码的一般形式是:

B正在执行的runnable可以有任意代码,并且可能多次调用A,所以我无法通过将A的调用直接添加到B中来摆脱这段代码中的runnable。另外,A是第三方代码,所以我们不能修改它。runnable 可能会通过另一个对 A 的嵌套调用再次调用 B,但是今天这种情况从未发生过,所以我现在可以忽略这种情况。

我看到几个选项:

  1. 声明A() throws BlahException并使其 B 成为该异常的唯一捕获者。这很难看,因为不应该真正抛出任何异常,但这很好,因为编译器会为我确保调用层次结构。
  2. 编写某种静态分析工具来确保我的这条规则。我还没有对这个案例进行太多调查,因为这听起来比其他任何事情都需要更多的工作(但也许有一个预先存在的工具可以做到这一点?)。
  3. 向“A 的开头”添加一个断言(实际上,此代码必须存在于 Runnble 的自定义版本中,因为我无法直接修改 A)我们正在对 B 的调用中运行。这可以使用一些额外的线程/对象本地状态或遍历调用堆栈本身,这两者都很丑陋。

还有其他我没有考虑过的选择吗?

0 投票
1 回答
101 浏览

java - Java 设计模式:强制所有超类型的调用方法

介绍:

我为数据库过滤器构建了一个类层次结构:

这样我可以PropertyFilter<String>用于字符串和ComparableFilter<DateTime>DateTime 对象。


棘手的部分:

我有一些过滤器查询构建器,它遵循与过滤器类相同的层次结构。查询构建器的每一方都应该只添加额外的查询。

例子:


问题/问题:

如您所见,我总是必须调用super.getQuery()然后返回修改后的查询对象。

如果每个类只有一个这样的方法会容易得多addFiltersToQuery

但是我当然会用我的类层次结构覆盖这个方法。虽然如果我addFiltersToQueryFilterQueryBuilder课堂上打电话,我只会得到最新的实现。

有没有办法在不使用的情况下调用所有实现super

0 投票
0 回答
175 浏览

c# - 通用Windows开发中的“查看调用层次结构”在哪里?

Call Hierarchy窗口中,Visual Studio 告诉我右键单击并选择View Call Hierarchy以显示调用层次结构。

我似乎找不到这个选项,不是在运行时,也不是在相关上下文中的断点处暂停时。

这是我在右键菜单中看到的图像(我安装了 resharper):

在此处输入图像描述

当我使用组合键 Ctrl+KT 时,Visual Studio 会通知我The key combination (Ctrl+K, Ctrl+T) is bound to command (View Call Hierarchy) which is not currently available.

有任何想法吗?

0 投票
0 回答
221 浏览

r - 在 gperftools 中获取 R 包的调用层次结构

我可以使用 gperftools 来生成调用图,例如这个问题

现在我想bind_rows()dplyrR 包中获取一个调用图,以便追踪这个错误

我编译了两者Rdplyr使用CPP/CXXFLAGS=-g -fvar-tracking-assignmentsand LDFLAGS=-lprofiler -lunwind

当我运行以下命令时:

我得到的是:

在此处输入图像描述

如何获取调用层次结构,以便知道dplyr绑定行文件中的哪个调用是瓶颈?

编辑:似乎该--focus选项是我在这里需要的。但是如何将它连接到RecursiveRelease

在此处输入图像描述

编辑:用 重新编译 Rcpp 并-g与 链接后-lprofiler,我可以得到以下信息: flame.svg,其中 8% 获得了良好的堆栈跟踪,但大部分仍然没有。-lprofiler这可能是因为某些库是在没有支持加载的

0 投票
1 回答
373 浏览

eclipse - 从某个函数调用层次结构

背景:

在 Eclipse 中工作,我有两个功能:do_somethingperform_task。我知道do_something调用了许多其他函数,这些函数又调用了其他函数(等等),并且perform_task也被调用了。

由于这是一个大项目,有很多流程等等,我已经找到了两个不同的序列,其中do_something通过其他一些函数序列激活perform_task 。

实际问题:

eclipse中有没有办法获取某个函数的调用层次结构,但只有序列中还包含某个其他函数的序列?

从图路径的角度考虑这一点,我们有一个有向图,而不是询问节点的路径是x什么,我想知道x包含节点的节点的路径是什么y