如果是比较新的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

vscode GDB远程调试安卓的更多相关文章

  1. gdb 远程调试android进程 -转

    什么是gdb 它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C.C++代码. 它主要可以做4件事情: 随心所欲地启动你的程序. 设置断点,程序执行到断点处会停 ...

  2. Gdb远程调试Linux内核遇到的Bug

    知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/gdb-bug 本博客同步在http://www.cn ...

  3. gdb 远程调试android进程

    原文:http://blog.csdn.net/xinfuqizao/article/details/7955346?utm_source=tuicool 什么是gdb 它是gnu组织开发的一个强大的 ...

  4. 在海思芯片上使用GDB远程调试

    1 前言 使用海思平台上(编译工具链:arm-himix200-linux)交叉编译 GDB 工具(使用版本8.2,之前用过10.2的版本,在编译 gdbserver 遇到编译出错的问题,因为关联了其 ...

  5. gdb 远程调试 android native 程序

    ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 先看一张原理图: 我是 Linux 和 Android 双料 0 基础,目前对 gdb 了解的很浅显.(注意 ...

  6. ida GDB 远程调试

    在看雪上回答的问题,有人问在WinDbg下断KiDebugRoutine或者KdEnterDebugger函数会引发蓝屏!因为是在调试Windows的内核调试引擎,我给出的解决办法是用不依赖Windo ...

  7. DM368 arm板GDB远程调试

    参考: http://www.erchashu.com/wiki/eclipse-cdt-gdb-arm-app-cross-debug 远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通 ...

  8. 用GDB远程调试android native程序

    上次写了几个native程序,想着如何调试,经过一阵子搜索和测试,终于完成了.有几个关键点: 1 gdb和gdbserver 因为这两个需要配套,建议使用同一个ndk下面的gdb和gdbserver ...

  9. 源码级别gdb远程调试(实现OS简单内核)

    最近在学着编写一个操作系统的简单内核,需要debug工具,我们这里使用gdb来进行调试,由于虚拟机运行和本机是两个部分,所以使用 gdb 的远程调试技术,这里对 gdb 常见调试以及远程调试方式做一个 ...

  10. ARM平台如何玩转GDB远程调试?

    前  言 关于GDB工具 GDB工具是GNU项目调试器,基于命令行使用.和其他的调试器一样,可使用GDB工具单步运行程序.单步执行.跳入/跳出函数.设置断点.查看变量等等,它是UNIX/LINUX操作 ...

随机推荐

  1. Zotero 附件云同步(非 WebDAV 方法)

    1.说明 适用范围更广,但是操作步骤较复杂. 使用 zotero 仅同步题录信息,使用其他云同步程序同步文献的附件,此处以坚果云为例进行演示. 准备: zotero 和 坚果云 注册账号 zotero ...

  2. fdMemtable FDQuery json之间的一些关系

    1 procedure TForm1.btn1Click(Sender: TObject); 2 var ss,ss1: TStringStream; 3 begin 4 ss := TStringS ...

  3. MaxKB web 站点知识库选择器的花样玩法

    背景:MaxKB 创建知识库支持"web 站点"的这种形式,但是很多同学不知道怎么录入选择器来针对性的获取某一部分内容. 1. 选择器作用 选择器用于定位网页中特定的元素,以便获取 ...

  4. JAVA stream集合List<Map>转二维集合Map<String,Map<String,Object>>

    简介 将一个 List<Map> 转换为一个二维的 Map 结构通常意味着我们需要创建一个 Map<K, Map<K, V>>.这里,外部的 Map 使用某个键(比 ...

  5. macOS系统:新用户更新需谨慎‼️

    发个牢骚:macOS系统的更新频率真的是太快了,基本都是BUG修复.功能更新等等.每更新一次版本,偌大的安装包就要重新将各种格式安装包封装一次.小更新还好,大更新直接会影响到软件APP的使用,尤其是小 ...

  6. .Net Core全局的json配置

    .Net Core全局的json配置 参照文档: 怎样将枚举展示成字符串类型:https://code-maze.com/csharp-serialize-enum-to-string/ 全局配置:a ...

  7. ESP32教程:通过WIFI控制LED灯的开关

    LED闪烁 在通过WIFI控制LED灯的开关之前,我们先实现一下LED闪烁. 接线图: 来源:https://esp32io.com/tutorials/esp32-led-blink 我的接线图: ...

  8. C# 14 新增功能一览,你觉得实用吗?

    前言 今天咱们一起来看看在 C# 14 中新增的几个功能特性,是否给我们日常编码带了来便利. 前提准备 要体验 C# 14 中的新增功能,你需要安装最新的 Visual Studio 2022 版本或 ...

  9. MyCAT 2实现mysql8主从同步读写分离

    一.MyCAT2介绍 1.1 什么是MyCAT?MyCAT是目前最流行的分布式数据库中间插件,是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器.前端用户可以把它看作一个数据库代理,用M ...

  10. IT/互联网行业突围之路:ChatGPT驱动下的未来

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...