Android シェルの場合:
/data/local/valgrind/enter code herebin/valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --log-file=/sdcard/valgrind.log /data/local/Test
================================================== ======================
valgrind.log -- ヒープの概要:
==21314== ヒープ概要:
==21314== 出口で使用中: 6 ブロックで 2,098,270 バイト
==21314== 合計ヒープ使用量: 6 割り当て、0 解放、2,098,270 バイト割り当て
==21314==
==21314== 1 ブロック中の 4 バイトは、6 件中 1 件の損失レコードで確実に失われています
==21314== 0x482BAEC: malloc (vg_replace_malloc.c:291)
==21314== by 0x864B: ??? (/data/local/Test 内)
==21314==
==21314== 1 ブロックの 10 バイトは、6 の損失レコード 2 で確実に失われます
==21314== 0x482BAEC: malloc (vg_replace_malloc.c:291)
==21314== by 0x863B: ??? (/data/local/Test 内)
==21314==
==21314== 1 ブロック中の 80 バイトは、6 件中 3 件の損失レコードで確実に失われています
==21314== 0x482C2E4: 演算子 new[](unsigned int) (vg_replace_malloc.c:378)
==21314== by 0x85DF: ??? (/data/local/Test 内)
==21314==
==21314== 1 ブロックの 1,024 バイトは、6 個中 4 個の損失レコードでまだ到達可能です
==21314== 0x482BAEC: malloc (vg_replace_malloc.c:291)
==21314== by 0x4852DB3: __smakebuf (/system/lib/libc.so 内)
==21314==
==21314== 1 ブロックの 1,048,576 バイトが 6 の損失レコード 5 で失われる可能性があります
==21314== 0x482BAEC: malloc (vg_replace_malloc.c:291)
==21314== by 0x86C3: ??? (/data/local/Test 内)
==21314==
==21314== 1 ブロックの 1,048,576 バイトは、6 の損失レコード 6 で確実に失われます
==21314== 0x482BAEC: malloc (vg_replace_malloc.c:291)
==21314== by 0x869F: ??? (/data/local/Test 内)
==21314==
==21314== リークの概要:
==21314== 確実に失われました: 4 ブロックで 1,048,670 バイト
==21314== 間接的に失われました: 0 ブロックで 0 バイト
==21314== 失われた可能性: 1 ブロックで 1,048,576 バイト
==21314== まだ到達可能: 1 ブロックで 1,024 バイト
==21314== 抑制: 0 ブロックに 0 バイト
==21314==
==21314== 検出され抑制されたエラーの数については、-v で再実行してください。
==21314== エラーの概要: 18 のコンテキストから 137 のエラー (抑制: 0 から 0)
Android.mk:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := Test LOCAL_SRC_FILES := helloworld.cpp APP_CPPFLAGS += -O0 include $(BUILD_EXECUTABLE)**
Linux ではndk-build NDK_DEBUG=1
、このテストをデバッグできるように実行していますが、valgrind ログに行番号が表示されないのはなぜですか?