From 28a89370f02b0c33d9580e870da086b7391d1500 Mon Sep 17 00:00:00 2001 From: David Srbecky Date: Wed, 21 Mar 2018 12:58:00 +0000 Subject: [PATCH] Fix mini-debug-info generation for apps with wrap.sh script. Debuggable apps enable mini-debug-info after fork, however, this does not work with apps with wrap.sh script since they follow different code path. Enable mini-debug-info generation for those as well. Bug: 74070426 Test: check that app with wrap.sh generates debug info for JIT now Change-Id: I489ac3c82bcced8fc0448ed5666f67009cbb043d --- core/java/com/android/internal/os/WrapperInit.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/java/com/android/internal/os/WrapperInit.java b/core/java/com/android/internal/os/WrapperInit.java index 49010802c784a..f0e779694c909 100644 --- a/core/java/com/android/internal/os/WrapperInit.java +++ b/core/java/com/android/internal/os/WrapperInit.java @@ -115,6 +115,14 @@ public class WrapperInit { command.append(' '); command.append(appProcess); + // Generate bare minimum of debug information to be able to backtrace through JITed code. + // We assume that if the invoke wrapper is used, backtraces are desirable: + // * The wrap.sh script can only be used by debuggable apps, which would enable this flag + // without the script anyway (the fork-zygote path). So this makes the two consistent. + // * The wrap.* property can only be used on userdebug builds and is likely to be used by + // developers (e.g. enable debug-malloc), in which case backtraces are also useful. + command.append(" -Xcompiler-option --generate-mini-debug-info"); + command.append(" /system/bin --application"); if (niceName != null) { command.append(" '--nice-name=").append(niceName).append("'");