内容简介:之后将如果出现如下错误:
编译
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常用调试方法:断点调试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Inside Larry's and Sergey's Brain
Richard Brandt / Portfolio / 17 Sep 2009 / USD 24.95
You’ve used their products. You’ve heard about their skyrocketing wealth and “don’t be evil” business motto. But how much do you really know about Google’s founders, Larry Page and Sergey Brin? Inside......一起来看看 《Inside Larry's and Sergey's Brain》 这本书的介绍吧!