問題タブ [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.
objective-c - Xcode の警告: OSO ファイルを開けませんでした
Xcode プロジェクトの ffmpeg dylib を新しいバージョンにアップグレードしたところ、アプリを実行すると Xcode コンソール ウィンドウにこれらすべての警告が表示されます。なぜ私がこれらを手に入れているのですか?
前もって感謝します!
これは簡略版ですが、アイデアは得られます。
elf - elf 実行可能ファイルからの構造内の要素のアドレス
デバッグ用にコンパイルされていない ELF 実行可能ファイルから構造内の要素のアドレスを取得することは可能ですか?
例、次のコードが与えられた場合:
nm と readelf の両方が変数「places」の開始アドレスを提供し、readelf も sizeof を提供します。
ただし、必要なのは、構造内の各要素のアドレスです。したがって、上から私が欲しいのは次のとおりです。
現時点で私の唯一のルートは、dwarf2 デバッグ情報を使用してコンパイルし、readelf (-wliao) を使用して .debug_info セクションをダンプし、DW_TAG_variable から型ツリーを解析して base_type のサイズを加算することです。例の読み取り:
ソースコードにアクセスせず、デバッグ情報をオフにしてこれを行う方法を見つける必要があります..
ヘルプやポインタをいただければ幸いです。
ありがとう、クリス
dwarf - DW_AT_locationの使用と意味
デバッグのための属性DW_AT_locationの使用法を知りたいと思いました。これは、dwarfがデバッグ用に指定した属性の1つですが、それが何を表しているのかを実際には理解できませんでした。また、コードをコンパイルするときにこの属性をいつ発行する必要がありますか。
macos - ApplesGCCは実行可能ファイル内にDWARFをどこに/どのように保存しますか
Apples GCCは実行可能ファイル内にDWARFをどこに/どのように保存しますか?
gcc -gdwarf-2
(Apples GCC)を介してバイナリをコンパイルしました。ただし、デバッグ情報objdump -g
もobjdump -h
表示されません。
また、libbfdはデバッグ情報を検出しません。(私はbinutils-mailinglistでそれについてここで尋ねました。)
dsymutil
ただし、 (dSYMに)を介してデバッグ情報を抽出することはできます。libbfdは、それらのデバッグ情報を読み取ることもできます。
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
。
iphone - 実行中のプロセスのmach-ouuidを取得するにはどうすればよいですか?
MacでUUIDを取得するには、
また、「バイナリイメージ」セクションで単純なクラッシュでUUIDを取得できます
iOSデバイスでクラッシュせずにUUIDを取得する方法はありますか?
php - C構造パーサーが必要
system.h
次の構造を持つファイルがあるとしましょう
DUMP_STRUCT(bar)
ここで、(Foo 型の) bar のすべてのメンバーを再帰的に出力する、 のようなマクロが必要です。
Cファイルを解析したり、実行可能ファイルからdwarfから情報を取得して、に似た関数を作成したりできるパーサー/スクリプト(できればphp/python)はありますDUMP_STRUCT
か?
ios - atosとdwarfdumpは私の住所を象徴しません
シンボル化されていないクラッシュレポートをAirBrake.io経由で受け取りました。クラッシュレポートはAppleのクラッシュログとまったく同じ形式ではないため、通常どおりXCodeにドロップすることはできません。そのため、XCodeアーカイブからまったく同じビルドを取得して、コマンドラインでそれを象徴しようとしました。次の結果が得られます。
クラッシュレポートと同じビルドを使用していると確信しています。だから私もdwarfdumpで試しました:
また、結果はありません。間違ったdSYMファイルを使用する以外に、間違っている可能性のあるものはありますか?これはAirBrakeのクラッシュレポートで参照されているバージョンであり、XCodeアーカイブにあるため、これが正しいバージョンであることがわかります。
どんなアイデア/ヒントも大歓迎です!
arrays - デバッグ情報から変数の型を取得する
検討 :
データ セクションの objdump を実行すると、開始アドレスとサイズ (4*3) バイトの変数 x が取得されます。x が配列であり、どのタイプであったかという情報を取得する簡単な方法はありますか?
dwarfdump -i a.out を使用してこれを実行し、結果を解析して同じことを達成できることはわかっていますが、もっと簡単にできることはありますか? それが配列で、どのタイプのものかを確認する必要がありますか?
よろしく、
パンカジ
python - ELF 解析 : pyelftools を使用して DIE に直接アクセスする
オフセットを使用して DIE に直接アクセスする方法が必要です。これまでのところ、オフセットから DIE にアクセスできる計算ユニット (CU) オブジェクトのメソッドがあることがわかりました。
すなわち:
ただし、現在の CU の外側にある DIE にアクセスしようとすると、その DIE はその CU の下でインデックス化されていないため、範囲外になります。
これを達成するために私が考えることができる最善の方法は、CU をループし、オフセットをインデックスとして使用して DIE の包括的なリストを作成することです。
DWARFInfo
オフセットがある限り、任意の DIE にアクセスできるクラスのメソッドが必要なようです。
これを行う必要がある理由は、すべての CU をループしてグローバルのリストを生成し、別の CU の DIE を参照してタイプ情報を取得する必要があるためです。