linux C编程 gdb的使用

通常来说,gdb是linux在安装时自带的,在命令行键入“gdb”字符并按回车键会启动gdb调试环境。

1、gdb的基本命令

命令 说明
file 装入想要调试的可执行文件
kill 终止正在调试的程序
list 列出产生执行文件的部分源代码
next 执行一行源代码但不进入函数内部
step 执行一行源代码且进入函数内部
run 执行当前被调试的程序
quit 退出gdb
watch 动态监视一个变量的值
make 不退出gdb而重新产生可执行文件
call name(args) 调用并执行名为name,参数为args的函数
break 在代码里设置断点,使程序执行到此处被挂起

2、gdb运行模式的选择

gdb提供了包括“批模式”或“安静模式”在内的一系列运行模式,可以通过gdb运行时在命令行通过选项来选择。

-n 不执行任何初始化文件中的命令(一般初始化文件称为.gdbinit)。

一般情况下载这些文件中的命令行会在所有的命令行参数都被传给gdb后执行
-q 设定gdb的运行模式为“安静模式”,可以不输出介绍和版权信息

这些信息在“批模式”中也不会显示
-batch 设定gdb的运行模式为“批模式”,gdb在“批模式”下运行时,会在执行命令文件中的所有命令,当所有命令都被成功执行后返回状态0

如果执行过程中出错,gdb返回一个非零值
-cd dir 把dir作为gdb的工作目录,而非当前目录(gdb缺省时把当前目录作为工作目录)
   

3、gdb使用步骤

(1)运行“gdb+待调试的可执行文件名称”命令来启动调试。

(2)使用“b”快捷键在程序开始处设置断点,然后使用“run”开始调试

(3)使用“n”快捷键即可执行下一条程序,期间还可以使用其他命令来观察相应的变量的运行情况。

(4)使用break+数字/break +该行代码名称 ,来设置断点

(5)使用c,表示continue的缩写

(6)使用p命令+变量,来打印当前变量的值

(7)使用finish来结束函数

(8)使用q来退出调试

linux C编程 gdb的使用的更多相关文章

  1. gdb笔记 ---《Linux.C编程一站式学习》

    gdb笔记 ---<Linux.C编程一站式学习> 单步执行和跟踪函数调用 函数调试实例 #include <stdio.h> int add_range(int low, i ...

  2. Linux环境编程相关的文章

    Linux环境编程相关的文章 好几年没有接触Linux环境下编程了,好多东西都有点生疏了.趁着现在有空打算把相关的一些技能重拾一下,顺手写一些相关的文章加深印象. 因为不是写书,也受到许多外部因素限制 ...

  3. Linux C编程之一:Linux下c语言的开发环境

    ---恢复内容开始--- 今天开始根据Linux C编程相关视频的学习所做的笔记,希望能一直坚持下去... 1.开发环境的构成 编辑器:VI: 编译器:选择GNU  C/C++编译器gcc: 调试器: ...

  4. Linux多任务编程之七:Linux守护进程及其基础实验(转)

    来源:CSDN  作者:王文松  转自Linux公社 ------------------------------------------------------------------------- ...

  5. Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号

    Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号 背景 上一讲我们介绍了Unix IPC中的2种管道. 回顾一下上一讲的介绍,IPC的方式通常有: Unix IPC包括:管道 ...

  6. [Linux] Linux C编程一站式学习 Part.3

    Linux系统编程 文件与I/O C标准I/O库函数与Unbuffered I/O函数 C标准I/O库函数printf().putchar().fputs(),会在用户空间开辟I/O缓冲区 系统函数o ...

  7. 【深入浅出Linux网络编程】 "开篇 -- 知其然,知其所以然"

    [深入浅出Linux网络编程]是一个连载博客,内容源于本人的工作经验,旨在给读者提供靠谱高效的学习途径,不必在零散的互联网资源中浪费精力,快速的掌握Linux网络编程. 连载包含4篇,会陆续编写发出, ...

  8. 【linux草鞋应用编程系列】_5_ Linux网络编程

    一.网络通信简介   第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章.   二.linux网络通信     在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网 ...

  9. 学习linux/unix编程方法的建议(转)

    假设你是计算机科班出身,计算机系的基本课程如数据结构.操作系统.体系结构.编译原理.计算机网络你全修过 我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>linux ...

随机推荐

  1. 【KMP+最小循环节】F. Cyclic Nacklace

    https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/F [题意] 给定一个字符串,问在字符串后最少添加多少个字母,得到的新字符串能是前 ...

  2. apple网址

    https://developer.apple.com/downloads/index.action#   开发工具下载

  3. hiho一下 第四十九周 欧拉路

    http://hihocoder.com/contest/hiho49/problem/1 给定无孤立结点图G,若存在一条路,经过图中每边一次且仅一次,该条路称为欧拉路. 一个无向图存在欧拉路当且仅当 ...

  4. HDU 5640 King's Cake【模拟】

    题意: 给定长方形,每次从中切去一个最大的正方形,问最终可以得到多少正方形. 分析: 过程类似求gcd,每次减去最小的边即可. 代码: #include <cstdio> #include ...

  5. JSP的Cookie处理

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/Cookies-handling.html: Cookies是存储在客户端计算机的文本文件,保存各种跟踪目 ...

  6. SHARP AR-2048D/2348D

    http://www.sharp.cn/printer/AR-2048D%7C2348D/support/download.html

  7. Android GIS开发系列计划

    本系列博客的整理与写作计划如下,计划3个月(至2018.2)完成. 第一部分, 入门季 第二部分, Android基础季 第三部分, Data Flow 季 第四部分, 可视化季 第五部分, GIS常 ...

  8. linux 硬件中断调节

    什么是中断 中断interrupts是指硬件主动的来告诉CPU去做某些事情.比如网卡收到数据后可能主动的告诉CPU来处理自己接受到的数据,键盘有了按键输入后会主动告知CPU来读取输入. 硬件主动的打扰 ...

  9. 在DevExpress GridControl的一列中显示图片

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 近期做项目的时候用到了将GridControl中一列设置为PictureEdit类型,然后通过这一 ...

  10. i18n国际化的例子

    这个可以点击菜单进行中英文切换,每次切换就可以改变sessionStorage.languge,进行改变i18n的参数lang的值,然后重新调用下就可以了. 工程结构: i18n--| |---css ...