Android系统开发(2)——GDB调试工具

调试的过程

我们在eclipse中来看一下一般调试的过程:

1、debug模式编译

2、打上断点

3、运行调试

4、单步调试

step into:跳到函数体内部

step over:不跳到函数体内

step return:运行完当前函数

5、继续运行

continue

6、打印和监控值

GDB调试

先写一段C++的代码,代码内容如下:

使用debug模式编译:

进入Debug调试模式:

1、打断点,打断点的方式如下(GDB中的命令可以使用首字母来替代,比如break和b的作用相同)

break  函数名

break 行号

break 文件名:行号

break 行号 if条件

通过info break可以查看断点,通过delete可以删除断点,下面我们使用list命令查看源文件,然后打断点

查看断点

可以看到目前有一个断点,他的编号为1,在第四行;下面使用方法名打一个断点

2、开始运行(run) ,可以使用continue来继续向下运行,使用quit退出运行状态

可以看到在运行的时候停到了断点处

3、单步调试,但步调试分别对应如下三个命令

next------step over

step-----step into

finish-----step return

下面我们再来调试一段程序代码,代码内容和输出结果如下:

输出结果为:

这段代码在没有输出结果之前有些朋友可能会认为正确结果应该是50.5,下面我们就通过调试来看一下哪里出了问题

可以看到我们在第五行打了一个断点,当执行到第五行的时候其实该行并未执行,所以此时i的值是一个无效的值。

在上面我们使用了watch来观察变量i当i发生改变后就会显示i改变后的值,可以看到我们next后变量i的值变为0.01,下面我们使用条件断点来调试

可以看到在i循环到98次的时候实际的值并不是0.98而是比0.98大,我们next到第100次循环可以看到

此时条件不满足i==1,所以只能执行99次循环,结果就是49.5而不是50.5

输入wi可以方便我们调试

Android系统开发(2)——GDB调试工具,布布扣,bubuko.com

时间: 2024-08-02 11:01:35

Android系统开发(2)——GDB调试工具的相关文章

(2) 搭建 Android 系统开发环境

说干就干,先按 Google 官方的指导,搭建 Android 系统开发环境.页面(需FQ):http://source.android.com/source/initializing.html 安装 ubuntu-14.04 64bit 安装系统有两种方式可选,直接装在物理机上或装在虚拟机中,区别主要就是性能了,本次是安装在虚拟机中的.之前都是装在物理机上的,但是只有一台电脑,而做开发的时候往往还要做些笔记或者其它的事情.总之,在 ubuntu 中完成这些工作并不容易,以前折腾过,也怕了.另外

Android系统开发(1)——GCC编译器的编译和安装过程

GCC编译器介绍 GCC编译器(GNG C Compiler)是GNU项目中符合ANSI C标准的编译系统,能够编译C  C++  Object C等语言编写的程序,同时GCC也是一个交叉编译器,特别使用于不同平台的嵌入式开发. GNU: GNU是"GNU is Not Unix"的递归缩写,1984年,史托曼开始GNU项目,这个项目的目的是创建一个自由,开放的Unix操作系统(Free UNIX),刚开始史托曼参考UNIX上面的软件,开发出功能类似的软件,在开发期间并没有看其他软件的

【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930 手机的两种模式 : 在下面有详细的图片示例; -- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式; -- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FA

《Android系统开发》笔记

<Android系统开发>笔记1:Android系统概述 Android四层架构: 1. Linux Kernel&driver层 a.依赖于Linux 2.6内核,包含安全性.内存管理.进程管理,网络协议栈.驱动模型等b.Android自己加入的驱动,Binder IPC驱动,显示驱动,输入设备驱动.音频系统驱动,摄像头驱动,Wifi驱动.蓝牙驱动,电源管理等 2. Android本地库 & Java执行环境层 Android本地库(C/C++)Bionic:为嵌入式设备定制

Android菜鸟如何学习Android系统开发?

如何做好Android学习前的准备? 如果你已经确定了学习Android的目标,那么,应该提前做好哪些工作.先打下哪些基础呢? 首先,你最好先熟悉一门编程语言,现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了,建议先从将其好好复习一下,将其基本的语法再好好回顾一下,最好能搭建一个环境来运行.调试它.如果没有学过,不妨也提前学习一下,可以参考清华大学出版社出版的谭浩强老师的<C语言程序设计>,推荐这本书的

Android系统开发的学习教程在哪里可以看?

Android蛰伏很多年,终于赶上移动互联时代,迅猛崛起,以80%以上的占比成为行业占有率首位,Android程序员也成为移动互联发展必不可少的推动者,移动互联网行业的发展人才是非常重要的,很多开发者都纷纷转型到Android,这些传统的开发者想要从事移动互联网行业的开发,需要参加培训,参加Android培训来提升自身的技术实力,传智播客Android培训行业的领导者,为各大企业很多企业输送了大量的Android人才,来提升人才的战略. 目前Android系统占据了移动互联网行业的主体,很多用户

Android系统开发实务实训

实训项目 :               Android系统开发实务实训                                            项目源码获取:   <绝地坦克>是一款坦克大战类型的javascript网络游戏,本游戏项目运行说明可分为三个方向:说明运行的项目是什么.如何运行,以及运行该项目的结果和意义是什么?其中运行的是什么包括:项目说明与功能分析:如何运行主要是指,该项目程序的实现原理和运行方式.具体说明如下: 一.项目说明与功能分析 首先从逻辑上而言,本项目

【Android 系统开发】 编译 Android 系统 u-boot 内核 源码 并烧写到 OK-6410A 开发板上

博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 Android 光盘 下载地址 : http://pan.baidu.com/share/link?shareid=3662728609&uk=2754759285 ; -- 光盘所含内容 : Android 引导 u-boot 源码, Android 内核 源码, Android 系统源码, 交叉编

浅谈Android系统开发中LOG的使用

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录.在Android系统中,提供了简单.便利的LOG机制,开发人员可以方便地使用.在这一篇文章中,我们简单介绍在Android内核空间和用户空间中LOG的使用和查看方法. 一. 内核开发时LOG的使用.Android内核