問題タブ [control-flow-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.
gcc - GCC の RTL ダンプで呼び出し/ジャンプの種類を区別する
RTL 形式の gcc の制御フロー グラフ ダンプを取得し、graphviz を使用して視覚化しました。ただし、どのジャンプ/コールが直接的でどれが間接的かはまだ不明です。それらを互いに区別するための提案はありますか?
testing - C コードの c-use および p-use 変数と共にデータ フロー グラフを取得するにはどうすればよいですか?
Cコードのデータフローグラフを作成し、p-useおよびc-use変数を提供するオンラインツール/ソフトウェア(オープンソースが推奨)はありますか?
parsing - プログラムで Java コード (メソッド) を解析して制御フロー グラフにする方法
Java コードまたは Java メソッドを制御フロー グラフ (CFG) に解析するために使用できる API または参照ライブラリはありますか。AST を CFG に変換しようとしましたが、 AST パーサーを使用して変換できませんでしたが、変換する方法が見つかりませんでした。私は Eclipse IDE JAVA (J2SE) に取り組んでいます。
親切に助けてください。
c - 逆アセンブルと C の制御フローを比較するツール
一部の逆アセンブリと一部の C の制御フローを比較するツールはありますか?
これが私の状況です。関数の逆アセンブリ (x86_64) から始めました。一部の C コードでは、Hopper.app が提供する逆コンパイルを利用して、同じ機能を持つ関数を作成しようとしました。私の C コードが逆アセンブリの機能を正確に再作成することを確認したいと思います (可能なすべての入力とグローバル状態について)。制御フロー グラフを比較できるようになることを願っています。
このホワイト ペーパーの要約によると、少なくとも Java のコンテキストでは、この分野でいくつかの作業が行われています。
逆アセンブル用の制御フロー グラフの生成と比較に使用できるツールはありますか? 理想的には、私が始めた逆アセンブリの制御フローと、思いついた C コードを比較できればよいのですが、私が始めた逆アセンブリの制御フローと、C コードから生成できる逆アセンブリの制御フローを比較すると、それでも素晴らしいです。
tbb - TBBのデータフローグラフと依存グラフの違いは何ですか
Intel TBB チュートリアルについて読んだことがありますがdata flow graph
、dependence graph
これら
2 つの概念について少し混乱しています。
と の主な違いは、明示的に共有されたリソースがあるかどうかだと言えdata flow graph
ますdependence graph
か?
しかし、疑似メッセージでdependence graph
usingを実装したり、共有グローバル変数でusingを実装したりできるようです。function_node
data flow graph
continue_node
abstract-syntax-tree - インテルの icc コンパイラーは AST、CFG、IR を生成できますか?
clang を使用する場合、clang が生成する抽象構文ツリー (AST)、制御フロー グラフ (CFG)、および LLVM IR を調べると役立つことがわかりました。
Intel の icc コンパイラ (バージョン 15.0.2) を調べ始めましたが、同じアーティファクトを生成できるかどうか、またはどのように生成できるかを示すドキュメントが見つかりません。
私が見つけた最も近いものは、とりわけ IR を含むファット リンク時オブジェクトを生成できることです。しかし、IR がユーザーにとって理解しやすいものであることを示唆するものは何も見当たりません。
これらのアーティファクトをiccから取得する方法があるかどうかは誰にもわかりませんか?
eclipse - Scalaコードから制御フローグラフを生成するには?
Scala コンパイラによって生成された制御フロー グラフを見たい。そうする方法はありますか?私はオンラインで検索してみましたが、ここwww.drgarbage.comのようなJava用のEclipseプラグインしか見つかりませんでしたが、Scala用のものはありませんでした。
ありがとう
編集: scalac によって生成された .class ファイルを取得し、それを dr ガベージ プラグインで開いて、制御フロー グラフとして視覚化されたバイトコードを確認しました。しかし、scalac は 3 つの異なる .class ファイルを作成します: Foo、Foo$、および Foo$delayedInit$body です。切断されたグラフがたくさん表示されますが、Foo$ のグラフの 1 つだけが適切に見えます。3 つの .class ファイルの違いをオンラインで検索してみましたが、何も見つかりませんでした。
static-analysis - 制御フロー グラフにサブルーチン呼び出しをどのように含めますか?
制御フロー グラフのアイデアが得られました。これには、ジャンプを表すエッジで接続された基本ブロック (常に発生する操作のシーケンス) であるノードが含まれます。
しかし、サブルーチン呼び出しをどのように表現するのでしょうか?
次のような 2 つの関数がある場合:
両方の関数が を呼び出している場合、ブロックから へのジャンプと への別のジャンプ、およびブロックから へのジャンプとdo_something()
へのジャンプを許可する方法が必要ですが、 からへのジャンプとへのジャンプは決してありません。(または→ → ) したがって、単純な有向グラフではこれらの関係を定義するのに十分ではないように思えます...何かが足りないのかもしれません。tweedledee
do_something
tweedledee
tweedledum
do_something
tweedledum
tweedledee
do_something
tweedledum
tweedledum
do_something
tweedledee