0

在 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== 由 0x864B: ??? (在 /data/local/Test 中)

==21314==

==21314== 1 个块中的 10 个字节肯定丢失在 6 个丢失记录 2 中

==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)

==21314== 由 0x863B: ??? (在 /data/local/Test 中)

==21314==

==21314== 1 个块中的 80 个字节肯定丢失在丢失记录 3 of 6 中

==21314== at 0x482C2E4: operator new[](unsigned int) (vg_replace_malloc.c:378)

==21314== 由 0x85DF: ??? (在 /data/local/Test 中)

==21314==

==21314== 1 个块中的 1,024 个字节在丢失记录 4 of 6 中仍然可以访问

==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)

==21314== 由 0x4852DB3:__smakebuf(在 /system/lib/libc.so 中)

==21314==

==21314== 1 个块中的 1,048,576 字节可能在丢失记录 5 of 6 中丢失

==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)

==21314== 由 0x86C3: ??? (在 /data/local/Test 中)

==21314==

==21314== 1 个块中的 1,048,576 字节肯定丢失在 6 个丢失记录 6 中

==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)

==21314== 由 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 日志不显示行号?

4

0 回答 0