これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションの3.5つを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドllvm-symbolizer-XNUMXです。
プログラム:
NAME
llvm-symbolizer-アドレスをソースコードの場所に変換します
SYNOPSIS
llvm-シンボライザー [オプション]
DESCRIPTION
llvm-シンボライザー 標準入力からオブジェクトファイル名とアドレスを読み取り、出力します
標準出力に対応するソースコードの場所。 オブジェクトファイルがで指定されている場合
コマンドライン、 llvm-シンボライザー 標準入力からアドレスのみを読み取ります。 このプログラムは
オブジェクトファイルのデバッグ情報セクションとシンボルテーブル。
実施例
$ 猫アドレス.txt
a.out 0x4004f4
/tmp/b.out 0x400528
/tmp/c.so 0x710
/ tmp / mach_universal_binary:i386 0x1f84
/tmp/mach_universal_binary:x86_64 0x100000f24
$ llvm-symbolizer <addr.txt
メイン
/tmp/a.cc:4
f(int、int)
/tmp/b.cc:11
h_inlined_into_g
/tmp/header.h:2
g_inlined_into_f
/tmp/header.h:7
f_inlined_into_main
/tmp/source.cc:3
メイン
/tmp/source.cc:8
_主要
/tmp/source_i386.cc:8
_主要
/tmp/source_x86_64.cc:8
$ 猫 addr2.txt
0x4004f4
0x401000
$ llvm-symbolizer -obj = a.out <addr2.txt
メイン
/tmp/a.cc:4
foo(int)
/tmp/a.cc:12
OPTIONS
-obj シンボル化されるオブジェクトファイルへのパス。
-functions = [none | short | linkage]
関数名の印刷方法を指定します(関数名を省略、短く印刷)
関数名、または完全なリンケージ名をそれぞれ出力します)。 デフォルトは リンケージ.
-使用シンボルテーブル
デバッグ情報の関数名よりも、シンボルテーブルに格納されている関数名を優先します
セクション。 デフォルトはtrueです。
-デマングル
デマングルされた関数名を出力します。 デフォルトはtrueです。
-インライン化
ソースコードの場所がインライン関数内にある場合、すべてのインラインフレームを出力します。
デフォルトはtrueです。
-デフォルトのアーチ
バイナリに複数のアーキテクチャのオブジェクトファイルが含まれている場合(たとえば、Mach-Oの場合)
ユニバーサルバイナリ)、特定のアーキテクチャのオブジェクトファイルをシンボル化します。 あなたはできる
また、書くことによってアーキテクチャを指定します binary_name:arch_name 入力で(を参照してください
上記の例)。 アーキテクチャがどちらの方法でも指定されていない場合、アドレスは
象徴。 デフォルトは空の文字列です。
EXIT ステータス
llvm-シンボライザー 0を返します。他の終了コードは、内部プログラムエラーを意味します。
onworks.netサービスを使用してllvm-symbolizer-3.5をオンラインで使用する