内容简介:之后将如果出现如下错误:
编译
mmm art/runtime
单独编译art模块即可。
之后将 ANDROID_PRODUCT_OUT
的 system/lib/libart.so
system/lib64/libart.so
system/lib/libartd.so
system/lib64/libartd.so
分别推送到手机对应的位置,来更新手机中的 art 虚拟机模块。
如果出现如下错误:
'/system/lib/libart.so': remote couldn't create file: Read-only file system
说明无权限。使用如下脚本关闭权限验证:
adb root &> /dev/null && sleep 0.3 adb wait-for-device &> /dev/null && sleep 0.3 adb remount &> /dev/null && sleep 0.3 adb disable-verity && sleep 0.3
看到下面字样即可。
Verity already disabled on /system
AndroidStudio
Android Studio 2.3开始支持 lldb 来调试 Native代码。
设置
打开 Edit configuration
,在 Debugger 中将 Debug type
设定为 Native。表示当前调试类型为 Native。如下:
同时可以在 Symbol Directories
添加符号表文件夹。
aosp 编译成功之后的符号表都存在于:
out/target/product/${device}/symbols
可以按照顺序将 aosp 或者其他符号表目录存放与此。在运行时 AndroidStudio(lldb) 会自动按照目录顺序搜到为止。
运行
点击 debug 运行之后,可以看到如下输出:
$ adb shell cat /data/local/tmp/lldb-server | run-as com.qihoo360.replugin.sample.host sh -c 'cat > /data/data/com.qihoo360.replugin.sample.host/lldb/bin/lldb-server && chmod 700 /data/data/com.qihoo360.replugin.sample.host/lldb/bin/lldb-server' $ adb shell cat /data/local/tmp/start_lldb_server.sh | run-as com.qihoo360.replugin.sample.host sh -c 'cat > /data/data/com.qihoo360.replugin.sample.host/lldb/bin/start_lldb_server.sh && chmod 700 /data/data/com.qihoo360.replugin.sample.host/lldb/bin/start_lldb_server.sh' Starting LLDB server: /data/data/com.qihoo360.replugin.sample.host/lldb/bin/start_lldb_server.sh /data/data/com.qihoo360.replugin.sample.host/lldb unix-abstract /com.qihoo360.replugin.sample.host-0 platform-1557307585973.sock "lldb process:gdb-remote packets" Debugger attached to process 2607 Signal: SIGSTOP (signal SIGSTOP)
App启动完了之后就完成了 Debug 的第一步了。
断点
因为没有设置任何断点,并且只有符号表会有点无所适从。
这时可以尝试 pause program
如下:
此时会弹出本地的源码,接下来就能在源代码中添加断点了。
效果如下:
远程编译
正常来说,能在本地编译并且断点是很顺滑的事情。但是,很多时候可能需要使用别人编译出来的结果,或者你想在一台服务器上面进行编译。
但是问题在于我们的符号表记录了编译时的源码路径,而这个路径在另外电脑可能不存在。这时候就需要路径映射了。
如下方式可以查看符号表中的源码路径:
image lookup -vn CollectGarbageInternal
可以得到如下结果:
找到原始路径之后映射成本地路径即可。
settings set target.source-map <original> <local>
参考
By@hyongbai 共2123个字本文链接
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 免越狱虚拟定位外挂的调试小记与检测方案
- 免越狱虚拟定位外挂的调试小记与检测方案
- 根据调试工具看Vue源码之虚拟dom(二)
- 根据调试工具看Vue源码之虚拟dom(三)
- CentOS上编译OpenJDK8源码及在Eclipse上调试HotSpot虚拟机源码
- iOS常用调试方法:断点调试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机组成(第 6 版)
Andrew S. Tanenbaum、Todd Austin / 刘卫东、宋佳兴 / 机械工业出版社 / 2014-8-19 / CNY 99.00
本书采用结构化方法来介绍计算机系统,书的内容完全建立在“计算机是由层次结构组成的,每层完成规定的功能”这一概念之上。作者对本版进行了彻底的更新,以反映当今最重要的计算机技术以及计算机组成和体系结构方面的最新进展。书中详细讨论了数字逻辑层、微体系结构层、指令系统层、操作系统层和汇编语言层,并涵盖了并行体系结构的内容,而且每一章结尾都配有丰富的习题。本书适合作为计算机专业本科生计算机组成与结构课程的教......一起来看看 《计算机组成(第 6 版)》 这本书的介绍吧!