vscode GDB远程调试安卓

如果是比较新的android ndk的版本,建议使用lldb进行调试,参考:vscode lldb远程调试 - OpenFDE - OpenFDE Docs,将lldbserver push到移动端,开启端口调试,配置launch.json即可。

我调试的项目使用的是ndk-r17c,该版本的ndk没有lldb调试,只有gdb调试。

在prebuilt目录下,使用find -name gdbserver找到你需要的gdbserver版本,并push到手机上。

在linux-x86_64/bin下找到可执行文件gdb-orig,然后配置launch.json:

        {
            "name": "GDB remote codl_run",
            "type": "cppdbg",
            "targetArchitecture": "arm64", // Ensure to set the correct architecture for your target
            "miDebuggerServerAddress": "172.16.101.5:8888", // GDB server address
            "miDebuggerPath": "${workspaceFolder}/android-ndk-r17c/prebuilt/linux-x86_64/bin/gdb-orig", // Local GDB path
            "request": "launch",
            "program": "${workspaceFolder}/codl-mobile/debugee/bin/arm64-v8a/cpu_gpu/codl_run",
            "args": [
                "--test=yolo_v2_real_chain_search",
                "--op_idx=0",
                "--op_count=-1",
                "--chain_idx=-1",
                "--chain_count=-1",
                "--num_threads=4",
                "--chain_param_hint=1",
                "--gpu_mtype=2",
                "--data_transform",
                "--compute",
                "--latency_acq=1",
                "--lp_backend=1",
                "--search_method=serial",
                "--search_baseline=0",
                "--pratio_hint=0",
                "--rounds=50",
                "--debug_level=0"
            ],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/codl-mobile/test/codl_run/",
            "environment": [ // Use "environment" to set environment variables
                {
                    "name": "MACE_OPENCL_PROFILING",
                    "value": "1"
                },
                {
                    "name": "CODL_CONFIG_PATH",
                    "value": "/data/local/tmp/codl/configs/config_codl.json"
                },
                {
                    "name": "LD_LIBRARY_PATH",
                    "value": "/data/local/tmp/codl"
                },
                {
                    "name": "PATH",
                    "value": "/data/local/tmp/codl"
                }
            ],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Set breakpoint at main",
                    "text": "break main", // Optional: Set a breakpoint at main or another function
                    "ignoreFailures": false
                }
            ]
        },

一定要使用ndk里的gdb,不然会报错。
移动端使用命令./gdbserver :8888 ./XXX --args

posted @ 2025-01-03 18:17  ZCry  阅读(227)  评论(0)    收藏  举报