問題タブ [objdump]

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 投票する
1 に答える
5428 参照

android - NDKツールを使用してライブラリをソースコードでコンパイルするには?

ライブラリをソースコードでコンパイルするには?

Android ndk でネイティブ ライブラリを開発しています。時々、logcat からクラッシュ ダンプ メッセージを受け取りました。

アドレス 2e11c で実際のソース コードを見つける方法が問題です。私はグーグルからいくつかの解決策を検索します、誰かが言いました:

ただし、出力テキストにはソース コードはなく、アセンブリ コードのみが表示されます。ndk5rでサンプルのhello-jniプロジェクトを使用します。

-S オプションでソースを表示することはできますか?


[UPDATE ソリューション 2010/06/19]

ndk-gdb チュートリアル: A debuggable JNI example for Androidを見つけました。それは言った、ndk-buildスクリプトは私のデバッグシンボルを殺します。私は ndk-build V=1 を実行してそれを理解しようとします:

コマンドは私のデバッグシンボルを取り除きます:

ndk のバージョンが異なるため、strip コマンドを無効にする方法がわかりません。ただし、パスで削除する前に .so を使用できます。

ソースコードが戻ってきました:

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

c - objdump にアドレスを指定して、それを含む関数を逆アセンブルすることはできますか?

クラッシュの原因を確認するのに十分なコンテキストを取得するためだけに、大量のライブラリ コードを逆アセンブルしなければならないのは本当に面倒です。objdump にアドレスを渡すだけで、それを含む関数の境界を見つける方法はありますか?

編集:さらに良いことに、スタックトレース全体を逆アセンブルできますか?

0 投票する
5 に答える
52700 参照

objdump - objdump の Symbol テーブルの各列は何を意味していますか?

行っman objdumpたけどそんな情報ない

5つの列の意味を知っている人はいますか?

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

c++ - 抽象クラスにshared_ptrを使用する場合、nmまたはobjdumpで関数シンボルを見つける方法は?

抽象クラス ABC に shared_ptr を使用します。ABCImpl クラスは ABC の実装です。abc_ptr は、ABCImpl オブジェクトを指す shared_ptr< ABC> です。呼び出し元関数では、abc_ptr は ABC クラスのメンバー関数 (func_in_ABC) の 1 つを呼び出します。コンパイルは成功です。しかし、nm や objdump を使用すると、abc_ptr のシンボルしか表示されませんでした。呼び出し元関数の func_in_ABC() に対して表示されるシンボルはありません。

呼び出し元関数で func_in_ABC() のシンボルの出力を取得する理由、または方法を知っている人はいますか?

コードは次のとおりです。 ABC.h:

ABCImpl.h で:

ABCImpl.cpp で:

呼び出し元関数 D.cpp:

nm からの Do の出力:

ABC.h の func_in_ABC の定義を変更すると、D.cpp のコンパイルが失敗します。Do をコンパイルするときに、クラス ABC の定義をチェックすると思います。

0 投票する
0 に答える
800 参照

assembly - 逆アセンブルされた x86 elf 実行可能ファイルのセクションと、それらが実行されるタイミングと順序

私は現在 x86 アセンブリを学習しており、通常の x86 elf 実行可能ファイルでリバース エンジニアリングを試みています。現在、init main などの複数のセクションがあります。Google で少し調べてみましたが、必要なものが見つかりませんでした。実行されるセクションと実行順序を本当に理解したいので、ここの誰かがこのトピックについて読む場所を知っているかもしれません。詳細な情報が記載されたこのトピックへのリンクを歓迎します。

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

assembly - objdump 出力 - 列は何を表しているか?

objdump -rオブジェクトファイルを実行したところ、次の出力が得られました。ここで、各列は何を表していますか? 私はそれを見逃したかもしれませんが、ドキュメントには明記されていません。

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

c - GCC/objdump: コンパイル可能/ビルド可能なアセンブリ (C/C++ が散在する) ソースを生成していますか?

これは、 GCC を使用して読み取り可能なアセンブリを生成することに近いですか? 、しかし、ここでの私のコンテキストはavr-gcc(それに対応してavr-objdump) Atmel 用です (ただし、GCC ボード全体に適用されると思います)。

問題は、複数の .c および .cpp ファイルのプロジェクトがあることです。最終的に、「マスター」.cpp ファイルと同じ名前の実行可能ファイルにコンパイルされます。このプロセスでは、次の 2 つの方法でアセンブリ リストを取得できます。

(まだ試していませんが、このコードはコンパイル可能/ビルド可能だと思います.... )

  • スイッチを使用して、最終的な実行可能ファイルを検査し、objdumpアセンブリ リスト ソースを出力するように指示でき-Sます。この場合、次のような内容のファイルを取得します。/li>

(私はこのコードをビルドしようとしましたが、失敗しました - 「行番号」をラベルとして読み取ります)

明らかに、両方のリスト (loop少なくとも関数については) は同じアセンブリ コードを表しています。を除外する:

  • コンパイルする必要があるものgcc-- コンパイルobjdumpないもの
  • 1objdumpつには、「マスター」以外のファイルで定義できるすべての参照関数のリストが含まれています(例:digitalWrite) -1gccつにはありませ
  • 1objdumpつには、アセンブリが「散在」している元の C/C++ ソース行が含まれています (ただし、たまにしかなく、一見 C ファイルの場合のみですか?) -- gcc1 つには含まれていません。

それで、「コンパイル可能」であるアセンブリリストを取得する方法はありますが、すべてのリンクされた関数があり、ソース C/C++ コードが (おそらく、適切な場合) コメントとして散在しています (干渉しないように)アセンブリ ファイルのコンパイルで)? (の出力用のパーサーを書くことを除いてobjdump、つまり :) )

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

gcc - .data.rel.ro は何に使用されますか?

共有オブジェクトのメモリ使用量を分析するために objdump を使用しています。.data セクションと .rodata セクションに加えて、.data.rel.roセクションがあります。

これが何に使われたか知っている人はいますか?

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

assembly - objdump と ARM と Thumb の比較

ARM 用にビルドされたオブジェクトを gcc で逆アセンブルしようとしています。残念ながら、objdump はコードが ARM と Thumb のどちらであるかを推測しようとしていますが、間違っています。実際には ARM であるのに、コードが Thumb であると認識します。

objdump には、強制的にすべての命令を Thumb ( -Mforce-thumb) として解釈するオプションがありますが、ARM モードを強制するオプションはありません!

これは私には非常に奇妙な省略のように思え、作業を完了する能力を著しく妨げています (私は組み込みデバイスを使用しており、デバッグの唯一の手段は逆アセンブリを確認することです)。Thumb をサポートしない ARM アーキテクチャを使用するよう objdump に指示するなど、さまざまなアプローチを試しましたが、何も機能していないようです。何か案は?

(そして、はい、命令が本当にARMであることは知っています...)

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

binutils - nmとobjdumpの違い

マニュアルを見て、objdump重複nmする機能があります。

それぞれをいつ使用しますか?各コマンドの本来の目的は何でしたか?