001编程基础----GDB程序调试

一、GDB是GNU发布的程序调试工具。有三方面功能:

1、启动被调试程序。

2、让被调试程序在指定位置停住。

3、当程序被停住时,可以检查程序状态(如变量值)。

二、GDB调试步骤:

1、编译生成可执行文件

gcc -g hell.c -o hello

2、启动GDB

gdb hello

3、在main函数处设置断点

break main(或b main)

4、运行程序

run

5、单步 next

6、继续运行 continue(或c)

7、退出GDB   quit

三、GDB命令的常用操作

list(l)   查看程序

break(b) 函数名  在某函数入口处添加断点

break(b) 行号     在指定行添加断点

break(b) 文件名:行号   在指定文件的指定行添加断点

break(b) 行号if条件    当条件为真时,指定行号处断点生效,例如  b 5 if i=10,当i等于10时,第5行断点生效。

info break     查看所有设置的断点

delete  断点编号           删除断点

run(r)     开始运行程序

next(n)   单步运行程序(不进入子函数)

step(s)    单步运行程序(进入子函数)

continue(c)  继续运行程序

print(p)变量名        查看指定变量值

finish   运行程序,直到当前函数结束

watch 变量名 对指定变量进行监控

quit(q) 退出gdb

001编程基础----GDB程序调试

时间: 2024-10-10 09:06:07

001编程基础----GDB程序调试的相关文章

000编程基础----GCC程序编译

GNU C Compiler 多平台编译器,是GNU的代表作之一. GCC编译器可以编译链接C\C++\汇编成可执行文件,可执行文件没特殊后缀,看属性. 预处理 编译 汇编 链接 Gcc通过后缀来区分不同类型文件 .c C语言源代码文件 .a库文件 由目标文件构成的库文件 .C .cc .cxx C++源代码文件 .h 头文件 .i 已经预处理过的C源代码文件 .ii 已经预处理过的C++源代码文件 .o 编译后的目标文件 .s 汇编语言源代码文件 .S 经过预编译的汇编语言源代码文件 预处理:

GDB 程序调试简单实践

用了好久的GCC/G++ 却一直都没用过GDB调试过程序,有时程序不是很大,一般有错,直接看编译器编译结果就差不多知道错在哪儿了,或者使用codeblocks单步调试,甚至回到windows下面调试,但是总是不太方便,因此有必要看一下GDB调试方法和基本步骤. 下面是一个简单的演示: 首先创建一个有错误的代码,如下: 这个程序很简单,目的是接受用户的输入,并将用户的输入回应输出来. 但是这个程序的第17行有个错误,使用了未初始化的字符指针name,因此编译运行后会出现段错误,如下: 下面利用GD

1、GDB程序调试

GDB是GNU开源组织发布的一个强大的Linux下的程序调试工具.一般来说GDB主要完成下面四个部分的功能. 1)启动你的程序,可以按照你的自定义的要求运行程序. 2)可让被调试程序在你所指定的调试的断点处停住(断点可以使条件表达式). 3)当程序被停住时.可以检查此时你的程序中所发生的事,包括查看当前状态下程序中指定变量的值. 4)动态的改变你程序的执行环境. 步骤: 1.先使用vi编辑器编辑文件test.c,用于GDB调试器调试. 2.使用命令gcc -g test.c -o test,编译

gdb,程序调试助手

启动GDB:(其中我的app是编译之后的可执行文件) 退出命令:quit或者简写q 帮助获取: gdb通过完备的在线帮助,使我们使用起来更加方便.所有的帮助信息都是通过help命令获得的,运行help命令时,如果不指定参数,gdb将输出分类信息: 可以通过分类名作为help指定的参数来获得帮助,以断点(breakpoint)为例: 在gdb调试中,有几个注意点可以提高调试效率,第一,如果输入的命令开头字母能唯一标识这个命令,则后面的命令可以不用输入,例如退出命令quit,只输入q就已经是唯一标识

Linux编程基础——GDB(设置断点)(转:TianFang,cnblog: http://www.cnblogs.com/TianFang/archive/2013/01/20/2868889.html)

启动GDB后,首先就是要设置断点,程序中断后才能调试.在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种.设置断点的命令是break,它通常有如下方式: break <function>    在进入指定函数时停住 break <linenum>    在指定行号停住. break +/-offset    在当前行号的前面或后面的offset行停住.offiset为自然数. break filename:linenum

Linux编程基础——GDB(设置断点)

启动GDB后,首先就是要设置断点,程序中断后才能调试.在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种.设置断点的命令是break,它通常有如下方式: break <function>    在进入指定函数时停住 break <linenum>    在指定行号停住. break +/-offset    在当前行号的前面或后面的offset行停住.offiset为自然数. break filename:linenum

第七章,shell编程基础

更多笔记点击查看 Linux学习从入门到打死也不放弃,完全笔记整理(持续更新) http://blog.51cto.com/13683480/2095439 笔记整理开始时间:2018年4月12日11:37:35 本章内容: 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 编程基础: 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤 一步一步实现,使用的时候一个一个依次调用就可以了 对象式:以数据为中

Shell脚本编程基础

什么是Shell 操作系统最外层的程序,shell通过提示符让用户输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来,管理用户与操作系统之间的交互. Shell是一个用户跟操作系统之间的一个命令解释器.Shell是用户与Linux操作系统之间沟通的桥梁.用户可以输入命令执行,又可以利用 Shell脚本编程去运行. 为什么要用到shell shell是一个交互式程序,当用户输入一条命令,shell就解释一条,一次只处理一条命令.如果我们一些复杂操作,逐个敲命令工作量就会增大,因此,我

Linux下C/C++程序调试基础(GCC,G++,GDB,CGDB,DDD)

在写程序的时候,经常会遇到一些问题,比如某些变量计算结果不是我们预期的那样,这时我们需要对程序进行调试.本文主要介绍调试C/C++在Linux操作系统下主要的调试工具. 在Linux下写程序,C/C++主要的编译器有GCC/G++,ICC等,像我等穷码农,最喜欢GCC了,很大原因是他免费!所以,我们以GCC/G++为例介绍主要的调试工具. 分以下几个内容介绍: 1.调试之前的工作 2.选择调试工具 3.调试步骤 点我,请帮我投一票! 调试之前的工作 编译器在编译阶段需要产生可供调试的代码,才能被