首页 > 编程语言 >vscode单步调试Android c++源码

vscode单步调试Android c++源码

时间:2023-10-07 09:44:35浏览次数:41  
标签:x86 vscode c++ aosp gdb 源码 jetson home android

vscode单步调试Android c++源码

 

 

目录

 

步骤

注意:这个过程需要在Android源码环境中运行,可以使用adb端口转发工具,来连接服务器端的源码进行运行

关于adb端口转发:请看https://www.cnblogs.com/pyjetson/p/14828485.html

1. 运行gdbclient.py脚本

首先是使用vscode remote ssh终端连接服务器
1. 找到进程的pid号
adb shell "ps -A | grep vold"

2. 运行gdbclient.py脚本
gdbclient.py -p 20750 --setup-forwarding vscode

2. 复制生成的launch.json并新建/home/jetson/android_aosp/aosp/.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [

        {
            "miDebuggerPath": "/home/jetson/android_aosp/aosp/prebuilts/gdb/linux-x86/bin/gdb", 
            "program": "/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/system/bin/vold", 
            "setupCommands": [
                {
                    "text": "-enable-pretty-printing", 
                    "description": "Enable pretty-printing for gdb", 
                    "ignoreFailures": true
                }, 
                {
                    "text": "-environment-directory /home/jetson/android_aosp/aosp", 
                    "description": "gdb command: dir", 
                    "ignoreFailures": false
                }, 
                {
                    "text": "-gdb-set solib-search-path /home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/system/lib/:/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/system/lib/hw:/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/system/lib/ssl/engines:/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/system/lib/drm:/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/system/lib/egl:/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/system/lib/soundfx:/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/vendor/lib/:/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/vendor/lib/hw:/home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols/vendor/lib/egl", 
                    "description": "gdb command: set solib-search-path", 
                    "ignoreFailures": false
                },
                {
                    "text": "-gdb-set solib-absolute-prefix /home/jetson/android_aosp/aosp/out/target/product/generic_x86/symbols", 
                    "description": "gdb command: set solib-absolute-prefix", 
                    "ignoreFailures": false
                }, 
                {
                    "text": "-interpreter-exec console \"source /home/jetson/android_aosp/aosp/development/scripts/gdb/dalvik.gdb\"", 
                    "description": "gdb command: source art commands", 
                    "ignoreFailures": false
                }
            ], 
            "name": "(gdbclient.py) Attach vold (port: 5039)", 
            "miDebuggerServerAddress": "localhost:5039", 
            "request": "launch", 
            "type": "cppdbg", 
            "cwd": "/home/jetson/android_aosp/aosp", 
            "MIMode": "gdb"
        }
    ]
}

3. 运行gdb即可,打断点

参考

1. 使用调试程序
https://source.android.com/devices/tech/debug/gdb

标签:x86,vscode,c++,aosp,gdb,源码,jetson,home,android
From: https://www.cnblogs.com/managechina/p/17745566.html

相关文章

  • vscode c++ 编译运行配置(信息学竞赛OIer专用)
    vscodec++编译运行OI专用配置在你的文件夹下建立一个名为\(\tt.vscode\)的文件夹。目录是这样的:\(\tt.vscode\)\(\tt|--c\_cpp\_properties.json\)\(\tt|--launch.json\)\(\tt|--tasks.json\)\(\tt.vscode/c\_cpp\_properties.json\){"configurations&qu......
  • windows下vscode连接linux(虚拟机)进行(伪)远程开发
    免责声明本文乃至本系列是对网络上传播的内容进行整理以梳理流程,且因为篇幅限制会精简内容,适合面向具有计算机类基础知识的人群,本文内容较为笼统,只有大体上的逻辑,具体的细节肯定是官网上写的准而全,望读者能从官网上获取最新的信息,而不是这一篇参考性流程开源声明本文章遵......
  • C++将角度转为复数
    1.角度转复数,使用std::polar#include<iostream>#include<complex>#include<cmath>intmain(){floattheta=45;floattheta_pi=theta*(M_PI/180);std::cout<<"is"<<std::polar(1.0f,theta_pi)<<......
  • 十四天学会C++之第四天(面向对象编程基础)
    类和对象是什么?在C++中,类是一种用户定义的数据类型,它可以包含数据成员(也就是属性)和成员函数(也就是方法)。类是一种模板或蓝图,用于创建具体的对象。对象是类的实例,它是根据类的定义创建的,可以用来表示现实世界中的各种事物。对象具有类定义的属性和行为。面向对象编程思想面向对象编......
  • 电子病历系统源码(EMP)云端SaaS服务 B/S架构
    一体化电子病历系统基于云端SaaS服务的方式,采用B/S(Browser/Server)架构提供,覆盖了医疗机构电子病历模板制作到管理使用的整个流程。除实现在线制作内容丰富、图文并茂、功能完善的电子病历模板外,还可按照医疗机构的特色,根据不同业务的需求,使用该系统定制个性化、实用化、特色化电子......
  • 医学影像归档与通讯系统(PACS)系统源码 PACS三维图像处理
    医学影像归档与通讯系统(PACS)系统源码 PACS三维图像处理医学影像归档与通讯系统(PACS)系统,是一套适用于从单一影像设备到放射科室、到全院级别等各种应用规模的医学影像归档与通讯系统。PACS集患者登记、图像采集、存档与调阅、报告与打印、查询、统计等功能为一体,有效地实现了对海量......
  • 视频直播源码,js判断上传图片格式类型、尺寸大小
    视频直播源码,js判断上传图片格式类型、尺寸大小 /判断图片类型varf=document.getElementById("File1").value;if(f==""){ alert("请上传图片");returnfalse;}else{if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(f)){alert("图片类型必须是.gif,jpeg,jpg,png中的一种")ret......
  • 直播网站源码,EasyUI按钮控制标签显示与隐藏
    直播网站源码,EasyUI按钮控制标签显示与隐藏1.第一种 document.getElementById("delete").style.display='';  //标签显示  document.getElementById("delete").style.display='none'; //标签隐藏<aid="btn_save"href="#"class=&......
  • Python爬虫源码,Behance 作品图片及内容采集爬虫附工具脚本!
    Behance网站是设计师灵感必备网站这个网站跟国内的网站,花瓣网很像,甚至可以说花瓣学习了它不少,在瀑布流网页的展示上也有很多相似之处。前面本渣渣就分享过花瓣网图片采集爬虫,感兴趣可以移步查看,现在还能用!【爬虫】花瓣图片爬虫,Python图片采集下载源码Python爬虫tkinter,花瓣工业设......
  • Vscode中注释变成繁体的解决方法
    文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一下。为何分享?踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。热爱技术的小郑前言代码中的注释变成繁体字了、归根到底是由于字体的编码格式造成。前一段时间打开Eclipse项目的时......