ubuntu18.04上使用LLDB调试Chromium_Android

###动机###
Chromium_Android源代码庞大且复杂。
在调试器LLDB下能帮助我们更好的理解代码流程。
介绍使用LLDB调试器调试android上chromium的C++代码。

[1] 编译Chromium时,记得修改编译选项:-g -O0, 使得编译器做更少的优化,便于调试。
使用attach方式调试(因此进程在启动过程中暂时不能调试)。
查看进程PID:adb shell ps -A | grep chrome
启动lldb-server:adb shell /system/bin/lldb-server platform --server --listen unix-abstract:///data/local/tmp/debug.sock
确保手机目录/system/bin/存在lldb-server。lldb-server可以从android studio目录中找到。

[2] ubuntu18.04 安装LLDB。
apt install lldb
2.1启动lldb: lldb
2.2列出lldb支持平台:platform list
2.3选择LLDB使用平台:platform select remote-android
2.4连接lldb-server: platform connect unix-abstract-connect:///data/local/tmp/debug.sock
2.5列举手机进程: platform process list
2.6ATTACH PID: attach 16767 #PID=16767 就是要调试的进程PID
2.7查看: platform status

[3] 在LLDB中,设置源码路径:因为调试时源码路径与编译时源码路径 不相同,因此需要设置。否则LLDB将无法设置断点。
settings set target.source-map /home/huangguanyuan/chromium_android/src /home/huangguanyuan/chromium_android/src
settings show
settings list

[4] 在LLDB中,加载符号表。
target symbols add Z:\src\out\default64d\lib.unstripped\libnet.cr.so
target symbols add Z:\src\out\default64d\lib.unstripped\libchrome.cr.so
target symbols add Z:\src\out\default64d\lib.unstripped\libcontent.cr.so
target symbols add Z:\src\out\default64d\lib.unstripped\libbase.cr.so

[5] 在LLDB中,查找符号、设置断点、查看断点、启用/禁用断点、查看call stack、单步调试、查看变量。
详细请参考:http://lldb.llvm.org/lldb-gdb.html
image lookup --name TCPSocketPosix::ReadIfReady
breakpoint set -f tcp_socket_posix.cc -l 413
breakpoint disable 5
breakpoint enable 5
bt
c
n
print
frame variable

###完毕###

原文地址:https://www.cnblogs.com/huangguanyuan/p/9651108.html

时间: 2024-07-30 08:37:08

ubuntu18.04上使用LLDB调试Chromium_Android的相关文章

EOS 在ubuntu18.04上安装EOS

在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具,创建自己的公钥和私钥(待续) 用eos官方的命令行工具,创建钱包,执行转账,购买RAM等(待续) 本笔记包括二部分 一, 在虚拟机vbox上安装ubuntu18.04 二, 在ubuntu18.04上编译eos源代码,再安装eos 第一部分:在虚拟机vbox上安装ubuntu18.04 1,根据自己

在Ubuntu18.04上安装Nvidia驱动

拿到了一台新机子,带显卡的那种,当然是各种倒腾了!于是我又一天装了三遍机子来进行各种尝试熟悉配置啥的. 所以首先是在裸机上安装Nvidia驱动. 环境:Ubuntu18.04 刚安装完系统,当然是把软件更新器提出的下载更新给下载一下了.所以首先应该是 1 sudo apt-get update 当然,上述是系统主动提出的更新,并没有输入指令啦~ 接下来,为了安装较新的驱动,先将ppa源加入 1 sudo add-apt-repository ppa:graphics-drivers/ppa 2

Ubuntu18.04上安装N卡驱动、CUDA、CUDNN三连

环境:Ubuntu18.04 显卡驱动真的挺方便的,CUDA和CUDNN还是踩了一些坑2333 1.安装显卡驱动 安装ubuntu更新或sudo apt-get update & sudo apt-get upgrade sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update ubuntu-drivers devices sudo ubuntu-drivers autoinstall 安装显卡驱动 sudo reb

3.django restframework 项目部署到ubuntu18.04上(安装uwsgi)

1.安装uwsgi到真实(非虚拟环境)环境下 #退出虚拟环境 deactivate cd .. apt install python3-pip y apt-get install -y python3-dev pip3 install uwsgi 2.使用uwsgi启动项目 1.运行项目 uwsgi --chdir /home/ubuntu/gg --home /home/ubuntu/env36 --http :8000 --module gg.wsgi 2.浏览器访问: http://公网i

Ubuntu18.04上设置Tomcat8开机自启动

参照这篇博客:在Ubuntu 18.04上安装Tomcat 8 并设置自启动 成功了. 但是期间遇到了一个问题:运行命令sudo systemctl start tomcat的时候,报错: Warning: The unit file, source configuration file or drop-ins of tomcat.service changed on disk. Run 'systemctl daemon-reload' to reload units. Job for tom

在非越狱设备上使用 LLDB 调试第三方 App

说明 这个方法是在 iOS 8 刚发布的时候想到的,当时主要用来在非越狱的 iOS 8 设备上调试分析第三方已经支持 iOS 8 的 App,比如:UC 浏览器,下面也会使用 UCWEB 为例来说明一些命令. 原理 谈不上原理,主要就是利用 xcode 的工具链,当然如果对证书.签名.Entitlements 比较熟悉,可能会很自然的想到这个方法.当时想到方法后,就在 github 上搜索了一下发现已经有人写了相关的工具,下面跟大家说下具体如何操作. 工具 ios-deploy:https://

阿里云轻量服务器Ubuntu18.04上安装Hbase2.2.0与Hbase Shell基本操作

这是我自己装BigData相关软件的一系列教程的第二篇,第一篇是Hadoop的安装https://www.cnblogs.com/annie666/p/11567690.html 装软件是学大数据最最基础的一步,虽然相对简单,还是很容易出错啊.希望这个详细的教程可以帮助其他想学大数据的同学少走弯路. 参考资料 厦大林子雨教程:http://dblab.xmu.edu.cn/blog/2139-2/ 一.准备工作 装软件最怕的事情就是安错版本.所以安装Hbase前,看一下官网的basic prep

6.django restframework 项目部署到ubuntu18.04上(配置域名与https)

1.域名购买 1.在腾讯云购买一个域名 2.域名备案 2.域名解析 1.在腾讯云控制台,选择域名管理,然后选择域名解析 2.测试域名解析是否成功了,在本地打开cmd. ping 域名 3.申请免费的SSL证书 1.腾讯云搜索ssl,然后挑选那个免费的ssl证书,输入相关验证信息,等待通过验证 2.下载到本地 4.nginx安装ssl证书 1.腾讯云nginx安装ssl证书的文档: https://cloud.tencent.com/document/product/400/35244 2.按照腾

Ubuntu18.04上安装Docker-Compose

1.进入https://github.com/docker/compose/releases 查看最新版本,当前版本为1.23.1 sudo curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.设置权限 sudo chmod +x /usr/local/bin/docker