Category Archives: Android NDK

Android で落ちている箇所の情報を得る@ネイティブ

root 権限が必要ですが echo 1>/proc/sys/kernel/print-fatal-signals でカーネルからメッセージが出力され dmesg で情報を見ることができます。 (呼び出し履歴は含まれていない…)

Posted in Android, Android kernel, Android NDK, Linux, Linux kernel | Leave a comment

android ndk でC/C++ ソースからアセンブラソースを出力させる@clang

clang だとエラーになりアセンブラソースを出力できないので条件切り替えを追加 r9c clang3.3 LOCAL_CFLAGS += -fverbose-asm ifeq (,$(findstring clang,$(NDK_TOOLCHAIN_VERSION))) LOCAL_FILTER_ASM := python -c ‘import sys; import shutil; src = open(sys.argv[1], “rb”); dst = open(sys.argv[2], “wb”); shutil.copyfileobj(src,dst);’ endif 以前の記事

Posted in Android, Android NDK | Leave a comment

ndk-gdb-py.cmd が実行できないバグ修正 ndk-r9c

ndk-r9b で ndk-gdb-py の実行に失敗するようになっていました。 以前の記事 些細なことですが r9c で無事修正されました。 https://code.google.com/p/android/issues/detail?id=63054

Posted in Android, Android NDK | Leave a comment

Android NDK で Map ファイルを出力させる

共有ライブラリを生成したときに NDK では Map ファイルをデフォルトでは生成しないです。 jni/Android.mk に LOCAL_LDFLAGS += -Wl,-Map,$$(LOCAL_OBJS_DIR:%/=%)/$(LOCAL_MODULE).map -Wl,–cref -Wl,–demangle を追加することで Map ファイルを生成するようになります。 出力される so と同じ箇所に出力する場合は LOCAL_LDFLAGS += -Wl,-Map,$$(LOCAL_BUILT_MODULE:%/=%).map -Wl,–cref -Wl,–demangle でいけます。

Posted in Android, Android NDK | Leave a comment

android ndk でC/C++ ソースからアセンブラソースを出力させる

jni/Android.mk に LOCAL_CFLAGS += -fverbose-asm LOCAL_FILTER_ASM := python -c ‘import sys; import shutil; src = open(sys.argv[1], “rb”); dst = open(sys.argv[2], “wb”); shutil.copyfileobj(src,dst);’ を追加することで C/C++ から出力されるアセンブラソース(リスティングファイル)が残るようになります。 python 環境が必要ですが Android NDK r9 以降は NDK に含まれています。 LOCAL_FILTER_ASM は ANdroid NDK r5 以降なら使用できると思います。

Posted in Android, Android NDK | Leave a comment

ndk-gdb-py.cmd が実行できない ndk-r9b

ndk-r9b で ndk-gdb-py の実行に失敗するようになっています。 > ndk-gdb.py: error: unrecognized arguments: SHELL=cmd SHELL=cmd を ndk-gdb-py.cmd から削除すれば実行できるようになります。

Posted in Android, Android NDK | Leave a comment

NEXUS7 2013 LTE で ndk-gdb-py が失敗する

NEXUS7 2013 LTE JLS36C(4.3) で ndk-gdb-py でデバッグを試したところ デバッグできなかたのですが、解決策を見つけました。

Posted in Android, Android Device, Android NDK, NEXUS7 2013, NEXUS7 2013 LTE | 2 Comments