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。

浙公网安备 33010602011771号