前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu18.04上使用LLDB调试Chromium Android C++代码

Ubuntu18.04上使用LLDB调试Chromium Android C++代码

作者头像
望天
发布2019-07-11 13:36:04
2.2K0
发布2019-07-11 13:36:04
举报
文章被收录于专栏:along的开发之旅along的开发之旅

关于lldb/gdb调试命令区别和清单, 见 https://lldb.llvm.org/use/map.html

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年07月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于lldb/gdb调试命令区别和清单, 见 https://lldb.llvm.org/use/map.html
  • Ubuntu18.04上使用LLDB调试Chromium Android C++代码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档