美文网首页
valgrind在android 10上检查内存泄露

valgrind在android 10上检查内存泄露

作者: 技术笔记 | 来源:发表于2020-08-25 10:34 被阅读0次

    代码下载

    git clone git://sourceware.org/git/valgrind.git

    [github上的不行,缺少VEX目录]

    编译

    创建变异脚本build.sh:
        #!/usr/bin/env bash
    
        export NDKROOT=/home/hui/tools/android-ndk/android-ndk-r14b
        export AR=$NDKROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar
        export LD=$NDKROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld
        export CC=$NDKROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc
    
        bash ./autogen.sh
    
        CPPFLAGS="--sysroot=$NDKROOT/platforms/android-21/arch-arm64" \
           CFLAGS="--sysroot=$NDKROOT/platforms/android-21/arch-arm64" \
           ./configure --prefix=/data/local/Inst \
           --host=aarch64-unknown-linux --target=aarch64-unknown-linux \
           --with-tmpdir=/sdcard
    
        make -j4
        make -j4 install DESTDIR=`pwd`/Inst
    
    生成的目录push到手机上:
    $ cd Inst/data/local
    $ adb push Inst/ /data/local/
    
    
    创建valgrind.sh文件:

    run valgrind sh:

        #!/system/bin/sh
    
        PACKAGE="com.android.camera"
    
        # Callgrind tool
        #VGPARAMS='-v --error-limit=no --trace-children=yes --log-file=/sdcard/valgrind.log.%p --tool=callgrind --callgrind-out-file=/sdcard/callgrind.out.%p'
    
        # Memcheck tool
        VGPARAMS='-v --error-limit=no --trace-children=yes --log-file=/sdcard/valgrind.log.%p --tool=memcheck --leak-check=full --show-reachable=yes'
    
        export TMPDIR=/data/data/$PACKAGE
    
        exec /data/local/Inst/bin/valgrind sleep 200 $VGPARAMS $
    
    push start_valgrind.sh到手机上:
    $ adb push start_valgrind.sh /data/local/Inst/
    $ adb shell chmod 777 /data/local/start_valgrind.sh
    
    in adb shell:
    $ setprop wrap.com.android.camera "logwrapper /data/local/start_valgrind.sh"
    $ am start -a android.intent.action.MAIN -n com.android.camera/.Camera
    
    
    检查设置成功:
    adb shell getprop wrap.com.android.camera
    logwrapper /data/local/Inst/start_valgrind.sh
    

    可以运行,但是会崩溃,可能和android的版本有关,老版本android都是支持了valgrind的。

    相关文章

      网友评论

          本文标题:valgrind在android 10上检查内存泄露

          本文链接:https://www.haomeiwen.com/subject/srmajktx.html