LLDB uses a really broken logic to find whether the shell command failed or
not for Android. Sadly there's nothing much we can do to fix it (unless anyone
decides to work on a write a proper patch for the same).
--- a/lldb/source/Plugins/Platform/Android/AdbClient.cpp	2022-06-09 10:32:03.335331787 +0530
+++ b/lldb/source/Plugins/Platform/Android/AdbClient.cpp	2022-06-09 10:37:37.749300877 +0530
@@ -370,8 +370,8 @@
     return error;
 
   // ADB doesn't propagate return code of shell execution - if
-  // output starts with /system/bin/sh: most likely command failed.
-  static const char *kShellPrefix = "/system/bin/sh:";
+  // output starts with @TERMUX_PREFIX@/bin/sh: most likely command failed.
+  static const char *kShellPrefix = "@TERMUX_PREFIX@/bin/sh:";
   if (output_buf.size() > strlen(kShellPrefix)) {
     if (!memcmp(&output_buf[0], kShellPrefix, strlen(kShellPrefix)))
       return Status("Shell command %s failed: %s", command,
