【问题标题】:Call hierarchy from a certain function从某个函数调用层次结构
【发布时间】:2016-01-18 23:30:24
【问题描述】:

背景:

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

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

实际问题:

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

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

【问题讨论】:

  • 你可以尝试在函数中添加一个条件断点,作为条件你可以编写类似 Thread.currrentthread().getstacktraceelements contains x.y.z.yourclass.yourmethod
  • @guleryuz - 感谢您的想法,但就我而言,这根本不是一个选择。此外,您的想法将涵盖一个选项(Thread.currentthread()),我正在寻求对所有选项的深入了解......
  • 是否可以编写一些单元测试并模拟函数 perform_task 以涵盖所有序列情况

标签: eclipse call-hierarchy


【解决方案1】:

这并不完全符合您的要求,但可能足够有用:

调用层次结构视图中,有一个选项可以显示所选方法的被调用者,而不是调用者。在 Call Hiarchy 的视图工具栏中,有两个按钮描绘了用线连接的绿点;这些按钮在两种模式之间切换。

如果你选择do_something并打开Call Hierarchy视图,然后将模式设置为Show Callees,你也许可以探索各种路径do_something 导致 perform_task

【讨论】:

    猜你喜欢
    • 2013-01-05
    • 2019-06-16
    • 2012-05-17
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多