Ubuntu18.04上使用LLDB调试Chromium Android C++代码。
###动机###
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 SDK目录中找到。
[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 /home/u1804/chromium_android/src/out/default64d/lib.unstripped/libnet.cr.so
target symbols add /home/u1804/chromium_android/src/out/default64d/lib.unstripped/libchrome.cr.so
target symbols add /home/u1804/chromium_android/src/out/default64d/lib.unstripped/libcontent.cr.so
target symbols add /home/u1804/chromium_android/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
###完毕###
Ubuntu18.04上使用LLDB调试Chromium Android C++代码。的更多相关文章
- LINUX上使用GDB单步调试Chromium Android C++代码。
###动机###在LINUX使用GDB单步调试Chromium Android C++代码. [1]编译android平台Chromium, 修改GN文件中编译选项:-g -O0 使得编译优化更少,便 ...
- 在ubuntu18.04上安装EOS
在ubuntu18.04上安装EOS 在ubuntu18.04上安装EOS的目的: 把交易所的eos转到eos主网,防止交易所跑路或者交易所被黑客攻击 在不联网的安全环境下,用eos官方的命令行工具, ...
- Windows10上使用windbg调试Chromium Windows。
###目的###Windows10上使用windbg调试Chromium Windows. 安装Windows 10 SDK时, 就包含了windbg.exe."C:\Program Fil ...
- 联想ideapad-330C 在Ubuntu18.04 上安装Realtek 8821CE无线网卡驱动
在新买的联想ideapad-330C笔记本上,安装Ubuntu 18.04后,悲催的发现,没有无线网络,幸好有线还能用,然后网上搜一波,发现不少人遇到这种问题,也有人给出解决方案 参考的链接: Thi ...
- 在Ubuntu18.04上安装Nvidia驱动
拿到了一台新机子,带显卡的那种,当然是各种倒腾了!于是我又一天装了三遍机子来进行各种尝试熟悉配置啥的. 所以首先是在裸机上安装Nvidia驱动. 环境:Ubuntu18.04 刚安装完系统,当然是把软 ...
- Ubuntu18.04上安装NS-3
目录 第一步:处理gcc/g++版本 第二步:安装相关依赖 第三步:正式安装 第四步:测试 我自己前后安装过好几次NS3了,网上其他相关的博客质量都不是很好,因此自己总结了一个ns3的安装过程. 首先 ...
- Ubuntu18.04上安装CUDA_10.1(nvidia-driver)和cuDNN_7.6.5
本文是在Ubuntu18.04.5服务器上安装CUDA_10.1(nvidia-driver455)和cuDNN_7.6.5, Ubuntu 18.04.5 CUDA_10.1 (nvidia-dri ...
- 关于Ubuntu18.04上Python版本管理
时间: 2019-11-11 整理: pangyuaner 标题:树梅派上多版本python及pip安装使用管理指南 地址:https://blog.csdn.net/zbgjhy88/article ...
- Ubuntu18.04上安装Docker CE
建立 REPOSITORY 1.更新索引包 更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的地址,这样才能获取到最新的软件包 sudo ...
随机推荐
- C语言修改文件某部分内容
两种方法 1.全部读入内存 修改后重新存入文件 2.边读边写到另一新建文件 要修改的部分修改后存入新建文件 其他部分原封不动写入 写完删掉原先文件 将这个新的改为删掉那个的名字 方法一 读入内存修改 ...
- 解决jquery动态增加元素后children值没有变的问题
html代码如下: <ul id="attr_input_panel"> <li> <div class="attr_input_item& ...
- oracle仿全文检索切词机制实现文本信息类似度查找
应用场景: 依据keyword查询与此keyword相似的信息,当中一些keyword要排除掉比如:"有限公司"."有限责任公司"."股份有限公司&q ...
- Session原理、安全以及最基本的Express和Redis实现
Session原理.安全以及最基本的Express和Redis实现 https://segmentfault.com/a/1190000002630691
- ckeidtor编辑器添加图片上传功能
1.ckeditor默认没有上传图片功能,只能通过Url显示图片,图下图 2.首先说明,ckeditor是有上传功能的,只是隐藏了,需要通过配置让它显示 找到ckeditor/plugins/imag ...
- POJ 3225 线段树+lazy标记
lazy写崩了--. 查了好久 /* U-> [l,r]–>1 I-> [1,l-1] [r+1,+无穷] –>0 D-> [l,r]–>0 C-> [1,l ...
- Java中MySQL事务处理举例
实例(以sql语句中的insert语句为例) import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pr ...
- 一些 <link> 标记分享
<link rel="alternate" media="handheld" href="#" /> <link rel= ...
- OpenGL编程(五)绘直线以及分析绘直线的算法
这次主要实现在窗口上绘制点.线以及修改其属性,另外还会分析画直线的原理和相关算法. 1.在窗口指定位置画点 glBegin(GL_POINTS); glEnd(); 使用glBegin()和glEnd ...
- Rendering and compositing out of process iframes
For Developers > Design Documents > Out-of-Process iframes (OOPIFs) > Rendering and ...