問題タブ [dwarf]

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.

0 投票する
3 に答える
1240 参照

objective-c - Xcode の警告: OSO ファイルを開けませんでした

Xcode プロジェクトの ffmpeg dylib を新しいバージョンにアップグレードしたところ、アプリを実行すると Xcode コンソール ウィンドウにこれらすべての警告が表示されます。なぜ私がこれらを手に入れているのですか?

前もって感謝します!

これは簡略版ですが、アイデアは得られます。

0 投票する
1 に答える
2142 参照

elf - elf 実行可能ファイルからの構造内の要素のアドレス

デバッグ用にコンパイルされていない ELF 実行可能ファイルから構造内の要素のアドレスを取得することは可能ですか?

例、次のコードが与えられた場合:

nm と readelf の両方が変数「places」の開始アドレスを提供し、readelf も sizeof を提供します。

ただし、必要なのは、構造内の各要素のアドレスです。したがって、上から私が欲しいのは次のとおりです。

現時点で私の唯一のルートは、dwarf2 デバッグ情報を使用してコンパイルし、readelf (-wliao) を使用して .debug_info セクションをダンプし、DW_TAG_variable から型ツリーを解析して base_type のサイズを加算することです。例の読み取り:

ソースコードにアクセスせず、デバッグ情報をオフにしてこれを行う方法を見つける必要があります..

ヘルプやポインタをいただければ幸いです。

ありがとう、クリス

0 投票する
2 に答える
3400 参照

dwarf - DW_AT_locationの使用と意味

デバッグのための属性DW_AT_locationの使用法を知りたいと思いました。これは、dwarfがデバッグ用に指定した属性の1つですが、それが何を表しているのかを実際には理解できませんでした。また、コードをコンパイルするときにこの属性をいつ発行する必要がありますか。

0 投票する
4 に答える
8013 参照

macos - ApplesGCCは実行可能ファイル内にDWARFをどこに/どのように保存しますか

Apples GCCは実行可能ファイル内にDWARFをどこに/どのように保存しますか?

gcc -gdwarf-2(Apples GCC)を介してバイナリをコンパイルしました。ただし、デバッグ情報objdump -gobjdump -h表示されません。

また、libbfdはデバッグ情報を検出しません。(私はbinutils-mailinglistでそれについてここで尋ねました。)

dsymutilただし、 (dSYMに)を介してデバッグ情報を抽出することはできます。libbfdは、それらのデバッグ情報を読み取ることもできます。

0 投票する
1 に答える
953 参照

c - .bundle ファイルで objdump --dwarf=decodedline をエミュレートするにはどうすればよいですか?

Linux 上objdump --dwarf=decodedlineのファイル内の各オフセットのソースの場所を見つけるために使用してきました。.so

残念ながら Mac-OS X では、.bundle(共有ライブラリとして使用される) ファイルはこの方法ではクエリできないようです。

これらのバンドル内のコードを正しくデバッグしてステップスルーできるので、私にできることがあると楽観的ですgdb— 誰かがそれが何をしているのか知っていますか?

さらに詳しい情報:

このdwarfdumpユーティリティは、.bundle ファイルに DWARF データは含まれていないが、STABS データは含まれていると主張しています。ただしobjdump --stabs、スタブデータも見つかりません。

(質問への回答が簡単になる場合は、実際にはすべてのオフセットは必要ありません。特定のオフセットのソースの場所を照会できれば十分です)。

これをテストしてきたバンドル ファイルは、次を使用して生成されました。

元の c_location.o ファイルには、 が機能するために必要な情報が含まれていますobjdump --dwarf=decodedline

0 投票する
1 に答える
4813 参照

iphone - 実行中のプロセスのmach-ouuidを取得するにはどうすればよいですか?

MacでUUIDを取得するには、

また、「バイナリイメージ」セクションで単純なクラッシュでUUIDを取得できます

iOSデバイスでクラッシュせずにUUIDを取得する方法はありますか?

0 投票する
4 に答える
3152 参照

php - C構造パーサーが必要

system.h次の構造を持つファイルがあるとしましょう

DUMP_STRUCT(bar)ここで、(Foo 型の) bar のすべてのメンバーを再帰的に出力する、 のようなマクロが必要です。

Cファイルを解析したり、実行可能ファイルからdwarfから情報を取得して、に似た関数を作成したりできるパーサー/スクリプト(できればphp/python)はありますDUMP_STRUCTか?

0 投票する
6 に答える
15176 参照

ios - atosとdwarfdumpは私の住所を象徴しません

シンボル化されていないクラッシュレポートをAirBrake.io経由で受け取りました。クラッシュレポートはAppleのクラッシュログとまったく同じ形式ではないため、通常どおりXCodeにドロップすることはできません。そのため、XCodeアーカイブからまったく同じビルドを取得して、コマンドラインでそれを象徴しようとしました。次の結果が得られます。

クラッシュレポートと同じビルドを使用していると確信しています。だから私もdwarfdumpで試しました:

また、結果はありません。間違ったdSYMファイルを使用する以外に、間違っている可能性のあるものはありますか?これはAirBrakeのクラッシュレポートで参照されているバージョンであり、XCodeアーカイブにあるため、これが正しいバージョンであることがわかります。

どんなアイデア/ヒントも大歓迎です!

0 投票する
1 に答える
198 参照

arrays - デバッグ情報から変数の型を取得する

検討 :

データ セクションの objdump を実行すると、開始アドレスとサイズ (4*3) バイトの変数 x が取得されます。x が配列であり、どのタイプであったかという情報を取得する簡単な方法はありますか?

dwarfdump -i a.out を使用してこれを実行し、結果を解析して同じことを達成できることはわかっていますが、もっと簡単にできることはありますか? それが配列で、どのタイプのものかを確認する必要がありますか?

よろしく、

パンカジ

0 投票する
1 に答える
1270 参照

python - ELF 解析 : pyelftools を使用して DIE に直接アクセスする

オフセットを使用して DIE に直接アクセスする方法が必要です。これまでのところ、オフセットから DIE にアクセスできる計算ユニット (CU) オブジェクトのメソッドがあることがわかりました。

すなわち:

ただし、現在の CU の外側にある DIE にアクセスしようとすると、その DIE はその CU の下でインデックス化されていないため、範囲外になります。

これを達成するために私が考えることができる最善の方法は、CU をループし、オフセットをインデックスとして使用して DIE の包括的なリストを作成することです。

DWARFInfoオフセットがある限り、任意の DIE にアクセスできるクラスのメソッドが必要なようです。

これを行う必要がある理由は、すべての CU をループしてグローバルのリストを生成し、別の CU の DIE を参照してタイプ情報を取得する必要があるためです。