問題タブ [call-graph]
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.
llvm - LLVM を使用してコール グラフを生成するには?
関数ポインターを含む Linux カーネルのコール グラフの生成を検討しています (詳細については、以前の質問Linux カーネルの静的コール グラフの生成 を参照してください)。LLVM はこの目的に適しているはずだと言われましたが、llvm.org で関連情報を見つけることができませんでした。
関連ドキュメントへのポインタを含め、任意のヘルプをいただければ幸いです。
static - バイナリ実行可能ファイルからの静的コール グラフ
Linux でバイナリを静的に分析し、潜在的な呼び出しフロー/制御フローをすべて取得する方法があるかどうか疑問に思っていました。
基本的に、LLVM および同様のコンパイラによって提供されるものと同様の静的分析 (潜在的なエイリアシングを含む) ですが、バイナリから... (つまり、再コンパイルする必要はありません。)
ありがとう
javascript - 指定されたJavaScriptのコールグラフを生成するには?
「 https://stackoverflow.com/questions/1385335/how-to-generate-function-call-graphs-for-javascript 」を見て、試してみました。抽象的な構文ツリーを取得したい場合は、うまく機能します。
残念ながら、Closure Compiler は--print_tree
、--print_ast
およびのみを提供しているよう--print_pass_graph
です。それらのどれも私にとって役に立ちません。
どの関数が他のどの関数を呼び出すかのチャートを見たいです。
linux - GCCとエジプトを使用して包括的なコールグラフを生成する
私は包括的なコールグラフを生成しようとしています(Linux、ランタイム、ロットへの低レベルの呼び出しで完了します)。
ソースファイルを「-fdump-rtl-expand」で静的にコンパイルし、RTLファイルを作成しました。これをEgyptというPERLスクリプト(Graphviz / Dotと思います)に渡して、コールグラフのPDFファイルを生成しました。これは完全に機能し、まったく問題はありません。
ただし、組み込みとして表示される一部のライブラリに対して呼び出しが行われている場合を除きます。コールグラフを印刷せず、代わりにライブラリに実際に呼び出される方法があるかどうかを確認していましたか?
質問が不明な場合はお知らせください。
基本的に、コールグラフが<組み込み>を生成しないようにしています。
それを行う方法はありますか?
--------コード---------
Cilkライブラリをソースからコンパイルしました。
java - メソッドの呼び出し元を見つける
リソースを取得するメソッドがリソースを解放するかどうかを確認しようとしています。単一の jar ファイル内のクラス内のメソッドの呼び出し元を見つけるために使用する最適なツールは何ですか? またはでこれを行うことはできますCheckStyle
かFindBugs
? どのように?
などを使用してこれを行うことができると思いますがBCEL
、以前にバイトコードを使用したことがないため、これを行うには時間がかかりすぎます。
「Java コール グラフ」を検索しても有用なものは見つかりませんでしたが、これは非常に基本的な機能のように思われるため、適切な一致を逃した可能性があります。ただし、この非常に大規模なプロジェクトでコール グラフ全体を生成する必要はありません。
java - プロファイリングに profiler4j を使用する
profiler4j を使用して、2 つのメソッドを呼び出す単純な Java プログラムのプロファイルを作成したいと考えています。コールグラフビューに興味があります。次のリンクに従って、プロファイラーを実行しました。
プロファイラーを実行しようとすると
java -javaagent:profiler4j-1.0-beta2/agent.jar test/MainController
チュートリアルのリンクに示されている出力が得られます。しかし、もう一度プロンプトに戻るには ctrl+c を押す必要があります (私は Linux を使用しています)。
しかし、出力には何も表示されません。誰が私が間違っているのか教えてもらえますか? 助けていただければ幸いです。
ありがとう。
java - jProfiler を使用してコール グラフを生成する
jProfiler を使用してコール グラフを生成したいと考えています。評価版のライセンスキーを受け取りました。jprofiler を使用して単純な Web サーバー (jibble miniwebserver) のプロファイルを作成したいと考えています。私はLinuxを使用しています。「http://www.ej-technologies.com/download/jprofiler/files.html」から jprofiler_linux_7_1_2.sh ファイルをダウンロードし、ダウンロードした .sh ファイルを実行して jprofiler をインストールしました。jprofilerでアプリケーション サーバーを実行するにはどうすればよいか教えてください。このコマンド (java -jar Simplewebserver.jar) でプロファイリングせずにアプリケーション サーバーを実行できます。
助けていただければ幸いです。
ありがとう。
java - カスタマイズ可能な静的 Java Call-Graph ジェネレーター?
私はリファクタリングして、似たような見た目のひどい Java クラスをたくさん維持しなければなりません。多くは次の実装パターンを持っています
そして、これからグラフを生成したいと思います(Graphvizとを使用dot
)-「静的呼び出しグラフ」のようなものですが、正確ではありません。
Perl や Python を使って自分で Java コードを解析する以外に、これを自動的に行う方法を考えています。
私が本当にしたいのは、Abstract Syntax Tree (AST) か、ナビゲートできるクラスに似たものを用意し、その間にdot
-code を出力することです。
- ここでトラバース可能な AST を生成するにはどうすればよいですか? その場合、トラバースはJavaで行われると思いますが、出力がテキスト表現であれば問題ありません(
gprof
ここで思い浮かびます)。 - ASTを使用しない他のアプローチはありますか? 多分私は目が見えないだけで、より良い、より簡単な方法があります。
java - 単一のメソッド(c ++およびjava)のコールグラフ
特定のメソッド(例:Settings.cpp getSettingByName())について、静的なコールグラフを作成したいと思います。JavaとC++の両方でこれを実行できるオープンソースツールはありますか?
たとえば、「Settings.cpp getMethodByName」を指定すると、次のようになります。
コードに夢中にならないでください。これは単なる例です。
どうもありがとう、フィデル
cuda - CUDAのコールグラフ
egyptを使用してCUDAにあるコードのコールグラフを生成しようとしていますが、通常の方法は機能しないようです(nvccには-fdump-rtl-expandと同じことを実行できるフラグがないため) 。
詳細:
私は複数の.cuファイルにまたがる非常に大きなコード(私は作成者ではありません)を持っており、コールグラフがあればそれが何をしているのかを理解しやすくなります。
この質問への答えは他の人にも役立つと思います。
これをcuda(.cu)ファイルでどのように行うことができるかについてのアイデアはありますか?