我构建了一组无头 Vulkan 应用程序,可以为各种平台 {Win/Mac/Android} 进行编译并作为本机可执行文件运行。由于主要与 RenderDoc 捕获和调试相关的原因,我需要能够将这些应用程序构建和部署为 APK。按照类似于 https://github.com/cnlohr/rawdrawandroid 的方法,我编写了必要的签名和打包脚本作为我的构建系统的一部分,并使用 android_native_app_glue 最小化连接到现有代码。现在我有一个 Java 代码为零的 APK,我现在正在尝试找出如何方便地连接到调试器。 https://github.com/adelphes/android-dev-ext 不是一个选项,因为这显然只适用于 Java 代码。我之前曾在 launch.json 中成功进行了远程 lldb 配置(如下所示),但我一直无法为 APK 找出类似的解决方案。
是否可以创建允许远程调试 APK 的配置?似乎所有的成分都可用,但我找不到这样做的例子。似乎可以远程连接到正在运行的APK,如https://www.sh-zam.com/2019/05/debugging-krita-on-android.html,但我还没有弄清楚如何重现此功能位于 launch.json 配置中。
{
"name" : "Remote Debug",
"type" : "lldb",
"request" : "launch",
"program" : "${workspaceFolder}/bin/testApp", // Local path, will be copied to device automatically
"breakpointMode" : "path",
"initCommands" : [
"platform select remote-android",
"platform connect connect://e9646fd7:10086",
"settings set target.inherit-env false", // don't want to inherit host machine environment
],
}
我相信这两个链接应该可以提供您需要的答案:
基本上,它可以归结为运行远程
gdb
调试会话。一旦建立,它的行为应该与常规调试会话非常相似。