HeapSnap的使用

github地址:https://github.com/albuer/heapsnap

github的源码,缺少相关库,所以不能编译出可执行文件,及想要的lib,

我补充了缺少的库,可以正常编译出可执行文件,及lib。

HeapSnap的使用,在https://github.com/albuer/heapsnap地址有比较详细的说明。

这里只是记录下,添加编译依赖库,可以正常编译出在手机上使用的可执行文件,及lib。

这是我本地调试过,上传的一个可以在android上正常编译的资源路径:https://github.com/whcx/HeapSnapAndroid.git

编译依赖库存放位置:app\src\main\jniLibs\arm64-v8a只提供了针对arm64架构的。

cmakelist.txt中

set(libs ${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${libs}")

设置了查找依赖库的路径。

如下语句定义了编译完成后,可执行文件及lib存放的路径。

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY  ${PROJECT_SOURCE_DIR}/../bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../lib)

如下是完整的cmakelist,跟原github项目对比,主要是添加了android的编译脚本。

cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE on)
message("heap snapshot compile begin.....")
message(STATUS ${CMAKE_SOURCE_DIR})
message(STATUS ${PROJECT_SOURCE_DIR})

#add_definitions(-Wno-error)
# -DPLATFORM_SDK_VERSION
set(CMAKE_C_FLAGS "$ENV{CFLAGS} -Wno-error")

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY  ${PROJECT_SOURCE_DIR}/../bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../lib)

set(libs ${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${libs}")

include_directories(${CMAKE_SOURCE_DIR}/heapsnap/include)
#add_library(c_malloc_debug
#        SHARED
#        IMPORTED)
#set_target_properties(c_malloc_debug
#        PROPERTIES IMPORTED_LOCATION
#        ${CMAKE_SOURCE_DIR}/heapsnap/${ANDROID_ABI}/libc_malloc_debug.so)

set(SRCS
        ${CMAKE_SOURCE_DIR}/heapsnap/inject.c
        ${CMAKE_SOURCE_DIR}/heapsnap/process_util.c
        ${CMAKE_SOURCE_DIR}/heapsnap/ptrace_util.c)
add_executable(heap-snap ${SRCS})

add_executable(leak-test ${CMAKE_SOURCE_DIR}/heapsnap/leak_test.c)
#native-lib.cpp
add_library(
        heapsnap
        SHARED
        ${CMAKE_SOURCE_DIR}/heapsnap/heapsnap.cpp)

find_library(
              log-lib
              log )
target_link_libraries(
        heapsnap
        c_malloc_debug
        dl
        ${log-lib})

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值