2

Eclipseを介して(ADTとCDTを使用して)AndroidNDKアプリケーションをリモートでデバッグしています。

何らかの理由で、gdbはAndroidリンカーにフックできないため、ライブラリをロードしてもシンボルはロードされません。クラッシュが発生した場合、一部のシンボルがまだロードされていない可能性があります。

Eclipseコンソールビューで実行set solib-search-path obj/local/armeabiします。これにより、GDBはシンボルをリロードします。その後、btGDBバックトレースを取得するために発行でき、動作します。

Eclipseデバッグビューを正しいバックトレース情報で更新するにはどうすればよいですか?私はSIGSEGV処理の真っ最中なので、ステッピングはオプションではありません。

PS Android NDKリビジョン8bによると、これは修正されました。

Fixed several issues in ndk-gdb:
...
* Updated tool to retrieve /system/bin/link information, so gdb on the host can set a breakpoint in __dl_rtld_db_dlactivity and be aware of linker activity (e.g., rescan solib symbols when dlopen() is called).

部分的なバックトレースのみを表示するEclipse

4

1 に答える 1

1

考えられるオプションの1つは、現在の正確な命令にジャンプすることです。つまり、次のようになります。

jump * 0x40102ab6

もっと便利なオプションが欲しいです:-)

于 2012-10-14T17:31:17.123 に答える