問題タブ [addr2line]

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

c - gaddr2line 使用時の BFD 不明コマンド

gaddr2lineバックトレースシンボルのよりきれいなバージョンを印刷するために使用しようとしています。backtrace()を使用しgaddr2lineて実行することにより、アドレスを取得してからアドレスを取得していますpopen。Linux での使用は問題なく動作しますが、OS X でのaddr2line使用時に何らかの理由で奇妙なエラーが発生します。Mac OS でこれを試すと、GDB に関するいくつかの投稿を見たので、homebrew でインストールしようとしましたが、うまくいきませんでした。助けて。gaddr2lineBFD: ... : unknown load command ...

これが私のコードです:

出力は次のとおりです。

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

java - Java コードでクラッシュ ポイントを取得する方法

私のアプリケーションにandroid-support-v4.jar/libsしかありません。他のライブラリは使用しません。

アプリケーションが SIGNAL 11 エラーでクラッシュします。android-ndk のaddr2lineユーティリティを使いたいです。このツールを使用して Java ファイルの関数と行番号を見つけることはできますか? どんな助けでもここでとても役に立ちます

私のアプリケーションはwritingBluetooth Socket であり、その合間に を閉じています がソケットの後に呼び出されるsocketため、エラーが発生しています しかし、クラッシュの正確な行または機能を見つけることができませんどこで間違っているかを確認するにはどうすればよいですかwrite()close()

Logcat トレース:

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

ubuntu - Ubuntu でストリップされたバイナリで使用するシンボル ファイルを addr2line に提供するにはどうすればよいですか?

Ubuntu で C++ アプリケーションを実行しています。私がやりたいのは、アプリケーション バイナリからシンボルを取り除いてバイナリの一部にならないようにすることですが、addr2line ユーティリティを使用して、バイナリの一部であるシンボルの代わりにシンボル ファイルを参照してバックトレース情報を取得します。 . これは可能ですか?

これまでに得た最も近いものは、次を使用してシンボル ファイルを生成することです。

そして、そのファイルを addr2line ユーティリティで次のように使用してみました。

しかし、これは苦情をもたらします:

それで、私は試しました:

しかし、これは苦情をもたらします:

誰かが私を正しい方向に導くことができますか? 私は何を間違っていますか?

助けてくれてありがとう!

編集:

次のようなシンボル情報だけを含むファイルを作成していると思ったとき、今気づきました。

私は実際には、thesymbols.sym と呼ばれる削除されたバイナリを作成していました。

そうは言っても、私の最初の質問はまだ残っています。何か案は?

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

c++ - objdump を使用してソース コード内の特定の関数呼び出しを検出する

特定の関数が呼び出される場所を検出する方法が必要です。例えば:

ポイントは、定義や宣言ではなく、関数呼び出しだけが必要だということです。また、「単純な」C ライクな識別子だけでなく、クラス メソッド、名前空間で定義された関数などにも必要です。このプログラムは主に C++ で使用するためです。


私の試み

  1. GTags - 識別子をかなりうまく検出しますが、関数呼び出しと定義などを区別する方法はありません.

  2. CScope - C には適していますが、C++ では失敗することがあります

  3. objdump+ addr2line- 以下で詳しく説明します

私は今objdumpaddr2lineこの方法で使用しようとしています:

出力は次のようになります。

次に、最初の列から番号を取得し、次のようなコードで物理的な場所を取得しようとします。

関数呼び出しが正しく検出される場合もあれば、まったく異なるものが検出される場合もあります (ある種の参照などだと思います)。

それで、私の質問は、どの調査結果が関数呼び出しであるかを検出することは可能ですか? 出力にあることがわかりcallqましたが、コード内の関数呼び出しだけであるかどうかは完全にはわかりません。

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

linux - addr2line はどのようにしてソース ファイルとコード行を見つけることができますか?

addr2lineアドレスをファイル名と行番号に変換します。私はまだデバッグの初心者で、addr2line についていくつか質問があります。

  1. 特定の .so (バイナリ) ファイルをデバッグしている場合、ツールがそのソース コード ファイルを見つける方法 (どこから入手できるか!)、ソースが存在しない場合はどうなりますか?

  2. バイナリのアドレスとそのソースの行番号の関係はどのようなものなので、 addr2line はこの種のマッピングを行うことができますか?