2017-06-09 9 views
0

クラッシュしていて、アプリケーションがシンボルでコンパイルされています。 gdbを実行すると、スタックフレームは1つしかありません。コアダンプは1つのスタックフレームしか表示しない

アプリケーションは共有ライブラリを使用しており、一部の共有ライブラリは削除されています。私はフルBT実行すると以下 は、GDBから出力されます。

(gdb) bt full 
#0 0x78461f68 in ??() 
Cannot access memory at address 0x24 

誰もがさらに進行する方法を私を助けることができますが、そのような例です。アプリケーションからの呼び出しがこのアドレスで終了したことをどのように知るか

+0

* 'アドレス0x24のメモリにアクセスできません。 '*はobviosuly wrongです。何かがワイルドな読み書きをしています。 C++などの 'NULL'' this'ポインタを持つ3番目の仮想関数にあります。プログラム言語やアドレス0x78461f68にロードされている情報など、より多くの情報を提供する必要があります。 – jww

答えて

0

アプリケーションからの呼び出しがこのアドレスで終了したことをどのように知ることができますか。

おそらく、スタックオーバーフロー/スタックの破損が原因です。

アプリケーションには、Address Sanitizer(最新のClangとGCCで利用可能)をインストールする必要があります。問題を真っ直ぐに指摘するのは非常に良いことです。

関連する問題