linux C编程 gdb的使用
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的使用的更多相关文章
- gdb笔记 ---《Linux.C编程一站式学习》
gdb笔记 ---<Linux.C编程一站式学习> 单步执行和跟踪函数调用 函数调试实例 #include <stdio.h> int add_range(int low, i ...
- Linux环境编程相关的文章
Linux环境编程相关的文章 好几年没有接触Linux环境下编程了,好多东西都有点生疏了.趁着现在有空打算把相关的一些技能重拾一下,顺手写一些相关的文章加深印象. 因为不是写书,也受到许多外部因素限制 ...
- Linux C编程之一:Linux下c语言的开发环境
---恢复内容开始--- 今天开始根据Linux C编程相关视频的学习所做的笔记,希望能一直坚持下去... 1.开发环境的构成 编辑器:VI: 编译器:选择GNU C/C++编译器gcc: 调试器: ...
- Linux多任务编程之七:Linux守护进程及其基础实验(转)
来源:CSDN 作者:王文松 转自Linux公社 ------------------------------------------------------------------------- ...
- Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号
Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号 背景 上一讲我们介绍了Unix IPC中的2种管道. 回顾一下上一讲的介绍,IPC的方式通常有: Unix IPC包括:管道 ...
- [Linux] Linux C编程一站式学习 Part.3
Linux系统编程 文件与I/O C标准I/O库函数与Unbuffered I/O函数 C标准I/O库函数printf().putchar().fputs(),会在用户空间开辟I/O缓冲区 系统函数o ...
- 【深入浅出Linux网络编程】 "开篇 -- 知其然,知其所以然"
[深入浅出Linux网络编程]是一个连载博客,内容源于本人的工作经验,旨在给读者提供靠谱高效的学习途径,不必在零散的互联网资源中浪费精力,快速的掌握Linux网络编程. 连载包含4篇,会陆续编写发出, ...
- 【linux草鞋应用编程系列】_5_ Linux网络编程
一.网络通信简介 第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章. 二.linux网络通信 在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网 ...
- 学习linux/unix编程方法的建议(转)
假设你是计算机科班出身,计算机系的基本课程如数据结构.操作系统.体系结构.编译原理.计算机网络你全修过 我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>linux ...
随机推荐
- 2017 CCPC 杭州 HDU6273J 区间修改(线段树&差分数组)
http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf 解析 线段树区间延迟更新 或 差分数组 两个数 统计2和3的最少的 ...
- 牛客网小白月赛1 B,I
#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> ...
- POJ训练计划
POJ训练计划 Step1-500题 UVaOJ+算法竞赛入门经典+挑战编程+USACO 请见:http://acm.sdut.edu.cn/bbs/read.php?tid=5321 一.POJ训练 ...
- C#中使用 Oracle的事务与存储过程
1 存储过程 1.1 不带参数,没有返回值 创建表 create table test (ID number, NAME varchar2(), SEX varchar2(), AGE number, ...
- java IO流之三 使用缓冲流来读写文件
原文:http://blog.csdn.net/haluoluo211/article/details/52183219 一.通过BufferedReader和BufferedWriter来读写文件 ...
- IOS开发之简单计算器
用Object-C写的一个简单的计算机程序,主要学习按钮的action动作. 以下是主界面: 以下代码时界面按钮和ViewController.h连接的地方: - (IBAction)button_0 ...
- 【python】一些好的学习网址
http://www.cnblogs.com/BeginMan/p/3179302.html http://www.cnblogs.com/huxi/category/251137.html http ...
- SSH端口自定义
SSH的服务端口是22,可以定义成其他端口号, / etc/ssh/sshd_config #ssh-server配置文件位于 /etc/init.d/ssh start #重启SSH服务,
- Java中Comparator接口和Comparable接口的使用
普通情况下在实现对对象元素的数组或集合进行排序的时候会用到Comparator和Comparable接口,通过在元素所在的类中实现这两个接口中的一个.然后对数组或集合调用Arrays.sort或者Co ...
- [计算机故障处理]EXCEL文件双击不能直接打开
同事的电脑里的EXCEL文件不知什么原因双击不能直接打开了,双击只能打开软件而且是没有任何表格的,但通过软件中的“打开”再找到指定的文件能打开. 解决方案: 打开excel,依次选择:工具-选项-常规 ...