如果是比较新的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. 掌握 K8s Pod 基础应用 (二)

    Pod生命周期 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程: pod创建过程 运行初始化容器(init container)过程 运行主容器(main co ...

  2. Noise——随机之美

    本篇博文介绍图形学中噪音生成的一般方法. Noise可以干什么? 不规则表面生成 有机体模拟 流体烟雾模拟 甚至是使用noise对灯光强度,位置做扰动: 只有我们想象不到的,没有noise不能涉猎的! ...

  3. ASP.NET 简单实现数字时钟

    每隔1000毫秒(1s)获取一次当前时间 <asp:ScriptManager ID="ScriptManager_Time" runat="server" ...

  4. Python 潮流周刊#96:MCP 到底是什么?(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  5. jmeter实现幂等测试的一种方法(案例)

    最近在研究怎样对电商系统的业务进行幂等测试,利用jmeter对单独业务开展幂等测试可能简便.直接有效吧 场景描述:买家每一笔订单选中商品后,系统会生成一个"ShopCartIds" ...

  6. eolinker请求参数:提交参数JSON转换格式不正确的解决方法

    当某个接口的提交参数类型为"array"时,该接口被自动化测试调用会转换成text类型. 导致执行测试的时候,整个参数转化json格式不正确 解决方法是在  格式不正确的项后面 配 ...

  7. Vue横向滚动鼠标控制

    let level_cards // 标记可移动 , move_start // 移动初始的x位置 , move_x // 移动初始的容器偏移量 , move_scroll_left // 判断是否为 ...

  8. 遇到的问题之“前端html中div设置边框border属性无效,解决方案”

    一.问题 二.解决方案 这里是漏了border-style属性,少了这个属性就不会显示边框了,加上就有边框了,这里是建议三个属性都要有完整 # 边距样式 border-style: inset;# 边 ...

  9. 行为模式 -- 观察者模式(Observer)

    Observer(观察者模式) -- 对象行为型模式 别名 依赖,发布-订阅(publish - subscribe) 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它 ...

  10. VS2019 配置 protobuf3.8.0

    1.下载protobuf3.8.0 https://github.com/protocolbuffers/protobuf/releases/tag/v3.8.0 2.准备工作 解压文件并在同级目录建 ...