如何将VSCode GDB远程调试安卓操作步骤详细说明?

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