logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

gcov代码覆盖率测试-原理和实践总结

目录一、gcov简介二、gcov过程概况三、使用gcov的3个阶段四、gcov检测代码覆盖率的原理五、服务程序覆盖率统计六、内核和模块的gcov代码覆盖率测试七、lcov工具使用八、info文件格式信息九、例子FAQ参考感谢一、gcov简介gcov是什么gcov是一个测试代码覆盖率的工具。与GCC一起使用来分析程序,以帮助创建更高效、更快的运行代...

windows--virtualbox端口号映射失败的解决方法:NAT: set redirect TCP host

背景:在windows 7中安装virtualbox虚拟机运行来如ubuntu、android等系统,当采用NAT模式启动时如果主机pc端需要和虚拟机内部镜像通信,则需要采用端口映射方式来实现,一个端口对应虚拟机内部一个服务。当virtualbox启动阶段会对这些端口进行映射,但是在windows中部分机器会出现端口映射失败的现象,端口映射失败日志如下:00:00:01.125577 NAT:

#windows
window下编译virtualbox源码

环境说明编译主机系统:windows 7 64位操作系统,Service Pack 1virtualbox源码版本: 4.3.34编译过程virtualbox作为开源x86指令架构虚拟机,有着和vmware一样的企业级别应用和性能,所以使用者众多,官方发布的各个版本的镜像和源码,如果官方镜像不符合我们的需求,按我们就需要根据源码来编译出自己

linux mprotect 修改用户态内存的方法

一.简述:     linux内核有时候需要修改用户态的内存,或者从用户态拷贝数据。由于linux内核态和用户态内存有各自的分区,不能相互直接访问,所以:当用户态态需要访问内核数据时,需要在内核用copy_to_user来吧内核数据拷贝到用户态当内核态需要访问用户态数据时,用copy_from_user来拷贝用户数据到内核。  copy_to_user实质就是修改用户态的内存,但有时

#linux
Linux系统调用__get_thread获取TLS失败导致应用程序奔溃

背景Android模拟器运行在PC端,Android应用运行在模拟器内部,当PC机在BIOS中没有打开虚拟化技术(vt-x: intel的硬件虚拟化技术; AMD-V: AMD CPU的硬件虚拟化技术)的时候,在模拟器内部运行ARM库的游戏,出现崩溃或者运行一段时间之后崩溃的问题. 具体奔溃点在__get_tls()+6处. 这里以当乐.apk这个游戏为例子,删除其中libs下的x86库,只保留a

#linux
Android编译错误处理--make: *** [out/host/linux-x86/obj/EXECUTABLES/clang_intermediates/clang] Error 1

collect2: ld terminated with signal 9 [Killed]make: *** [out/host/linux-x86/obj/EXECUTABLES/clang_intermediates/clang] Error 1make: *** Waiting for unfinished jobs....开始怀疑是软件的环境没有搭建好导致或者工具

#android#linux
git学习--批量上传本地代码库到gerrit服务器---保留本地代码库所有分支和tag信息

.gerrit服务器代码库建立:此篇文章和repo批量创建远端仓库----建立自己的android代码仓库 的不同点在于,用本章方法可以将本地仓库的所有本地分支信息和tag信息完整的上传到gerrit代码库

#git
git学习--gerrit服务器搭建总结

背景说明:    gerrit服务器:  作为git代码管理服务器,gerrit为git代码的提交引入强制审核机制(除非特别的授权设置),所用也可以称gerrit为代码审核服务器,其提供团队开发时的严格的多人代码审核入库机制,便于版本管理和版本安全。    git:  版本控制的工具,gerrit是对git提交代码的一个可视化代码审核机制。    gitweb: Gitweb提供了gi

git学习--commit-msg缺失导致的missing Change-Id问题分析

一.简介commit-msg hook这个hook由’git commit’触发, 且可以通过--no-verify 来略过.它接受一个参数, 包含commit msg的文件的路径.如果以非0状态退出, ‘git commit’ 将会被取消.这个hook可以用于修改message(信息)文件, 用来匹配项目的规范格式(如果有的话).也可以用于校验commit

到底了