問題タブ [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.
c++ - ネイティブC ++で特定のメソッドを直接的または間接的に使用するすべてのメソッドを見つける
C ++で特定のメソッドのすべての直接または間接メソッドの使用法を発見するためのツールはありますか. 管理されたクラスの場合、NDepend は「私を使用しているメソッドを選択する」という仕事をしますが、ネイティブ クラスでそれを行う方法に苦労しています。Visual Studio の呼び出し階層はそのような結果を生成できますが、私たちの巨大なコード ベースでは拡張できません。レポートを自動生成したい。皆さんが何かツールを提案できるかどうか疑問に思っています。
java - オブジェクトがインスタンス化されたクラスを見つける
不必要に複雑なソース コードを学習しようとしています。method があり、インスタンス化されpublic void passObject(SomeObject someObject)
たクラスを知りたいですsomeObject
。問題は、呼び出し階層を上にたどると、分岐係数が非常に大きくなることです。たとえば、3 つのメソッドは を通過できsomeObject
、passObject
これら 3 つのメソッドの前の 3 つのメソッドはそれぞれ同じオブジェクトを渡すことができます。
次のように挿入できる方法はありますかpassObject
:
私は使用しますEclipse
。
java - Java でメソッドのすべての可能な呼び出し元を取得する方法 - 呼び出し階層のような
クラスにメソッド m があるとします。プロジェクト全体で m を呼び出すすべてのメソッドを見つけようとしています。メソッドのリスト/配列を出力する必要があることを除いて、Eclipse の呼び出し階層ツールに似ています。静的に必要なので、スタック トレースが機能するとは思わない。おそらくリフレクションを使用して、これを実装する方法はありますか?
Eclipse の呼び出し階層ツールの例へのリンクを添付し、Dog クラスのメソッド barking() に言及しているすべてのメソッドを見つけました。(Dog.hungry() と Cat.scratching() は barking() を呼び出します)。
java - Eclipse の呼び出し階層に JSP 呼び出しを含める
Eclipse Call Hierarchy で JSP ファイルの呼び出しをサポートするにはどうすればよいですか?
私は Eclipse の Call Hierarchy 機能の熱心なユーザーです。これは、メソッドまたは他のエンティティのすべての呼び出し元をナビゲートして見つけるのに役立つからです。しかし、呼び出し階層リストはプロジェクト内の JSP ファイルを完全に無視しているため、コーディングとデバッグが困難になっています。呼び出しを見つけるには、テキスト検索ツールに頼らなければなりません。そうしないと、(ほとんどの場合) 完全に見逃す危険があります。
何らかの理由で、Eclipse での JSP のサポートは、対応する Java ソース コード ファイルと比較して標準以下であり、改善されていません。これは現時点では不可能ですか?または、何か不足していますか?
java - Eclipse - 「呼び出し階層を開く」がラムダ チェーンでの検索を停止する
これが私のサンプルJavaコードです:
methodDepth2()
Eclipse(4.4) から
メソッドの呼び出し階層を開くと、open call hierarchy
次の呼び出し元の検索を停止します。
私が期待しているのはmethodDepth1()
、メソッドまで表示されるメソッドの呼び出し階層を開くようなものmain
です。
java - 1 つのメソッドのコール スタックに Java の別のメソッドが常に含まれるようにする
特定のメソッド A のすべての呼び出し元が別のメソッド B によってラップされるようにしたい Java プロジェクトで使用する共通ユーティリティに設計上の問題があります。今日私が書いたこのコードの一般的な形式は次のとおりです。 :
B によって実行されている runnable には任意のコードを含めることができ、A を複数回呼び出す可能性があるため、A への呼び出しを B に直接追加しても、このコード内の runnable を取り除くことはできません。また、A はサードパーティです。コードなので、変更することはできません。ランナブルが A への別のネストされた呼び出しで B を再度呼び出す可能性がありますが、今日は決して起こらないので、今のところそのケースを無視しても問題ありません。
いくつかのオプションが表示されます。
A() throws BlahException
B がその例外の唯一のキャッチャーになるように宣言して作成します。実際にスローされる例外がないため、これは醜いですが、コンパイラーが呼び出し階層を保証してくれるので、これは素晴らしいことです。- このルールを確実にするために、ある種の静的分析ツールを作成してください。このケースは、他の何よりも手間がかかるように思えるので、まだあまり調査していません (しかし、これを実行できる既存のツールがあるのではないでしょうか?)。
- B への呼び出し内で実行している「A の始まり」にアサーションを追加します (実際には、このコードは Runnble のカスタム バージョンに存在する必要があります。これは、A を直接変更できないためです)。追加のスレッド/オブジェクトローカル状態またはコールスタック自体をトラバースしますが、どちらも一種の醜いものです。
私が考慮していない他のオプションはありますか?
java - Java 設計パターン: すべてのスーパータイプのメソッド呼び出しを強制する
序章:
データベース フィルターのクラス階層を作成しました。
このようにしPropertyFilter<String>
て、文字列とComparableFilter<DateTime>
DateTime オブジェクトに使用できます。
トリッキーな部分:
フィルター クラスと同じ階層に従うフィルター クエリ ビルダーがいくつかあります。クエリ ビルダーの各当事者は、追加のクエリのみを追加する必要があります。
例:
問題/質問:
ご覧のとおり、常に呼び出してからsuper.getQuery()
、変更されたクエリ オブジェクトを返す必要があります。
addFiltersToQuery
各クラスに次のようなメソッドしかない場合は、はるかに簡単になります。
しかしもちろん、このメソッドをクラス階層でオーバーライドします。addFiltersToQuery
クラス内で呼び出すとFilterQueryBuilder
、最新の実装しか取得できません。
を使用せずにすべての実装を呼び出す方法はありますsuper
か?
r - R パッケージの gperftools で呼び出し階層を取得する
たとえば、この質問のように、gperftools を使用してコール グラフを作成できます。
このバグを追跡するためbind_rows()
に、 R パッケージのコール グラフを取得したいと思います。dplyr
R
とdplyr
を使用してCPP/CXXFLAGS=-g -fvar-tracking-assignments
との両方をコンパイルしLDFLAGS=-lprofiler -lunwind
ました。
次を実行すると:
私が得るのは次のとおりです。
dplyr
のバインド行ファイル内のどの呼び出しがボトルネックであるかを知るために、呼び出し階層を取得するにはどうすればよいですか?
編集:--focus
ここで必要なのはオプションのようです。しかし、これを に接続する方法はRecursiveRelease
?
編集:でRcppを再コンパイルし-g
、 でリンクし-lprofiler
た後、次を取得できました。これは、一部のライブラリがサポートなしでロードされているためでしょうか?-lprofiler
eclipse - 特定の関数から階層を呼び出す
バックグラウンド:
日食で働いて、私はdo_somethingとperform_taskの 2 つの機能を持っています。do_somethingが他の多くの関数を呼び出し、それらが他の関数 (など) を呼び出し、その行のどこかでperform_taskも呼び出されることを知っています。
これは大きなプロジェクトであり、多くのフローなどがあるため、do_somethingが別の関数シーケンスを介してperform_taskをアクティブにする 2 つの異なるシーケンスを既に見つけました。
実際の質問:
日食で特定の関数の呼び出し階層を取得する方法はありますが、シーケンス内の特定の他の関数も含むシーケンスのみですか?
これをグラフ パスの観点から考えると、有向グラフがあり、 node へのパスは何かを尋ねる代わりに、 nodeを含む nodex
へのパスは何かを知りたいと思います。x
y