問題タブ [symbol-table]
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.
debug-symbols - ライブラリのシンボル テーブルにアクセスして、ルーチン シンボル名を検索する方法
OpenSSL ライブラリにリンクする Linux 実行可能ファイルで使用される暗号化ルーチンのアドレスを特定する必要があります。openssl シンボル テーブルにアクセスするにはどうすればよいですか?
openssl cyptolib から上記の情報を取得するにはどうすればよいですか?
誰でもこの問題を解決するのを手伝ってもらえますか?
symbol-table - 最終的な実行可能ファイルにシンボル テーブルが必要ですか?
Windows のポータブル実行可能形式にシンボル テーブルが含まれていることを読みました。コンパイルのセマンティック解析フェーズ中およびコード生成中にシンボル テーブルが必要になる理由を理解しています。しかし、この段階でアドレスがアセンブリ コードにマップされているため、最終的な実行可能ファイル自体にシンボル テーブルを含める必要がある理由がわかりません。私は何が欠けていますか??
c - Cでnmまたはreadelf出力を使用して静的関数を区別するにはどうすればよいですか
実行可能ファイルで nm または readelf -s の出力を処理しようとしています。ただし、出力で静的関数を互いに区別するのに問題があります。
これが私が取り組んでいるものです:
test.c
その他.c
私はこれらを次のようにコンパイルします:
次に nm コマンドを実行して、すべてのシンボルを取得します。
その中には、次の 2 つの記号 (私の静的関数用) が表示されます。
特定の foo 関数がどのファイルから出現したかを区別できる方法はありますか? または、これを機能させるためにコンパイルする前に魔法をかける必要がありますか?
私のユースケースでは、最終的なバイナリとそれが使用するオブジェクトファイルにアクセスできますが、実際に自分でビルドしてシンボルテーブルがあることを確認することはできません。
ありがとう!
compiler-construction - 3 アドレス コードとシンボル テーブル
私は OCaml で趣味のリターゲット可能な C コンパイラに取り組んでおり、それをボトムアップで構築しています。これまでのところ、要約された注釈付きの AST タイプがあります。
および 3 つの住所コード タイプ (ここでも要約):
注釈を無視してAST を TAC ノードのリストに変換する関数を作成しました。これに関して、私は2つの質問があります:
型注釈付き AST を TAC ノードのリストに変換する場合、どうすればよいですか? TAC ノードにも注釈を追加する必要がありますか? これにより、後で高レベルの
int
/char
型をI16
/のような低レベルの型に変換できますI8
。スコーピングはどのように処理すればよいですか?
Var
異なるスコープに同じ名前を持つ 2 つの がある場合はどうなりますか?
c++ - シンボル テーブルを使用して、C++ で名前で変数を参照する
基本的にタイトルが求めるもの。
や、シンボル テーブルなどのより高度な概念に少し慣れていないため、C++
オンラインで調べましたが、最終目標が何であるかについての方向性を見つけるのに苦労しています。私が見たチュートリアルのほとんどは C に対応しており、私が見つけた最も近い質問 ( here ) は、私がそれをコンパイルしようとしたため、レンガの壁に私を置きますが、望ましい結果が得られません.どのように機能するかについては、まだしっかりしてextern "C"
いません。
これが終わるまでに、シンボルテーブルから変数にアクセスし、変数を変更できるようにしたいと考えています。私はnm
とobjdump
をいじりました (そして、ハードウェアのバックグラウンドから来ているので、見るのは間違いなくクールですdlsym
) dlopen
。何よりもCで)。
アドバイスやコードの小さなスニペット (独自のサンプル プログラムを作成できるようにするため) は素晴らしいものです。追加するために、これは一種の古いバージョンのG ++を備えたLinuxシステム上にあり(現在マシンにいないため、その情報がありません)、現在アップグレードするアクセス権がありません.
yacc - lex と yacc (シンボル テーブルの生成)
私は lex と yacc とコンパイラの設計は初めてです。どのフェーズ (語彙、構文、またはその他のフェーズ) でシンボル テーブルがどのように生成されるかを知りたいのですが。
yacc に -v オプションを指定して生成される y.output ファイルについて簡単に説明してもらえますか?調べてみましたが、あまり情報が得られませんでした。
コンパイラの設計とは別に、lex と yacc が使用されている他のアプリケーションを教えてください。
c++ - C++ コードのシンボル テーブルには、関数名とクラス名が含まれていますか?
C++ コードのシンボル テーブルに関数名とクラス名が含まれているかどうかについて、さまざまな投稿を検索してきました。投稿で見つけたのは、コンパイラのタイプに依存するということです。
ワンパスでコードをコンパイルする場合、シンボル テーブルにクラス名とサブルーチン名を格納する必要はありません。
ただし、マルチパス コンパイラの場合は、検出したクラスとそのサブルーチンに関する情報を追加して、引数の型チェックを実行し、意味のあるエラー メッセージを発行できます。
実際にコンパイラに依存しているかどうかを理解できませんでしたか? 私は、コンパイラー (C++ コードの場合) が、シングルパスコンパイラーであろうとマルチパスコンパイラーであろうと、関数名とクラス名をテーブルに入れると想定していました。パスにどのように依存していますか?私はそのような素晴らしい/深い知識を持っていません。さらに、単純な C++ クラスのサンプル シンボル テーブルを誰かが示すことができますか? (関数名とクラス名) はどのようになりますか?
javascript - 背景の Javascript をシンボル テーブルにマップする開発者ツールは?
私は Firefox 開発ツール (firebug ではない) を調べていましたが、バックグラウンド Javascript (で実行されるコードなど) を追跡していないようsetInterval
です。実行を追跡する開発者ツールsetInterval
はありますか?次回実行されるのはいつですか?