Eclipseを介して(ADTとCDTを使用して)AndroidNDKアプリケーションをリモートでデバッグしています。
何らかの理由で、gdbはAndroidリンカーにフックできないため、ライブラリをロードしてもシンボルはロードされません。クラッシュが発生した場合、一部のシンボルがまだロードされていない可能性があります。
Eclipseコンソールビューで実行set solib-search-path obj/local/armeabi
します。これにより、GDBはシンボルをリロードします。その後、bt
GDBバックトレースを取得するために発行でき、動作します。
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).