无法打开malloc调试功能?

时间:2019-07-27 17:04:18

标签: android android-ndk

我正在尝试为我的android应用程序启用malloc调试,并且为了我的生命,我无法使其正常工作。

我的wrap.sh脚本每个都包含以下内容:

#!/system/bin/sh
LIBC_DEBUG_MALLOC_OPTIONS="free-track verbose"
logwrapper "$@"

我已经建立了以下目录结构:

directory structure

当我为“启用了malloc调试”而使用grep logcat时,我一无所获。

如果我将wrap.sh脚本的内容更改为此

#!/system/bin/sh
LIBC_DEBUG_MALLOC_OPTIONS=free-track logwrapper "$@"

这正是the documentation for the wrap shell script所说要添加的内容(尽管对我来说,这似乎是无效的shell脚本语法),我可以看到“已启用malloc调试”日志消息,但我的应用程序冻结在初始屏幕上,并且从未实际启动。

我不确定发生了什么,是否会喜欢任何类型的输入。

其他说明:

  • 我的项目正在使用CMake。
  • 我的调试设备正在运行Android P。

1 个答案:

答案 0 :(得分:0)

用于在Android上运行可执行二进制文件。我认为您正在通过JNI调用运行Java应用程序,但是这种技巧不适用于您。在应用启动时,您必须通过JAVA设置这些环境变量。

尝试查看OS.setenv()-https://developer.android.com/reference/android/system/Os.html。我希望可以在加载JNI库之前通过Java设置这些环境变量,或者希望该库在每次调用时都读取这些环境变量,而不仅是init。