MASTG-TEST-0040 デバッグシンボルに関するテスト (Testing for Debugging Symbols)
概要
静的解析
シンボルは通常ではビルドプロセス中に削除されるため、不要なメタデータが破棄されたことを確認するにはコンパイルされたバイトコードとライブラリが必要です。
最初に、Android NDK の nm
バイナリを見つけてエクスポート (またはエイリアスを作成) します。
export NM = $ANDROID_NDK_DIR/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-nm
デバッグシンボルを表示するには:
$NM -a libfoo.so
/tmp/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-nm: libfoo.so: no symbols
動的シンボルを表示するには:
$NM -D libfoo.so
あるいは、お気に入りの逆アセンブラでファイルを開いて手動でシンボルテーブルをチェックします。
動的シンボルは visibility
コンパイラフラグを使用して削除できます。このフラグを追加すると JNIEXPORT
として宣言された関数名を保持しながら gcc は関数名を破棄します。
以下が build.gradle に追加されていることを確認します。
externalNativeBuild {
cmake {
cppFlags "-fvisibility=hidden"
}
}
動的解析
デバッグシンボルを検証するには静的解析を使用する必要があります。
PreviousMASTG-TEST-0039 アプリがデバッグ可能であるかのテスト (Testing whether the App is Debuggable)NextMASTG-TEST-0041 デバッグコードと詳細エラーログに関するテスト (Testing for Debugging Code and Verbose Error Logging)
Last updated
Was this helpful?