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 ...
随机推荐
- springMVC @Value的使用
@Value 功能:将一个SpEL(SpEL:spring表达式类似于ognl)表达式结果映射到功能处理方法的参数上 例子:获取系统参数'java.vm.version'的值给到变量jvmVersio ...
- Pull方式解析XML文件
package com.pingyijinren.test; import android.content.Intent; import android.os.Handler; import andr ...
- ZOJ - 3829 Known Notation(模拟+贪心)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 给定一个字符串(只包含数字和星号)可以在字符串的任意位置添加一个数字 ...
- [bzoj4712]洪水_动态dp
洪水 bzoj-4712 题目大意:给定一棵$n$个节点的有根树.每次询问以一棵节点为根的子树内,选取一些节点使得这个被询问的节点包含的叶子节点都有一个父亲被选中,求最小权值.支持单点修改. 注释:$ ...
- Ubuntu 16.04安装SwitchHosts
下载: https://github.com/oldj/SwitchHosts/releases 解压: unzip SwitchHosts-linux-x64_v3.3.6.5287.zip 移动: ...
- Oracle将一列值逗号拼接wm_concat函数
--Oracle12c不再支持该函数,需要手动处理 --管理员登录授权给用户权限 GRANT CREATE SYNONYM TO c##sdic; / --创建 TYPE CREATE OR REPL ...
- 什么是Wiki?
Wiki一词来源于夏威夷语的“wee kee wee kee”, 发音wiki, 原本是“快点快点”的意思,被译为“维基”或“维客”.一种多人协作的写作工具.Wiki站点可以有多人(甚至任何访问者)维 ...
- 关于微软网站维护培训时遇到的issues:What is WEDCS?
WEDCS (pronounced “wed-ex”), the Web Events Data Collection Service, is a system for collecting, com ...
- 使用 Code Map 理解复杂代码1 ——Visual Studio2012
第一次知道code map是在Visual Studio Ultimate 2012自带的解说上面,当时认为十分好奇,所以查了查.结果一查就是好几天.原来Visual Studio Ultimate ...
- BZOJ1179 : [Apio2009]Atm 缩点+spfa
1179: [Apio2009]Atm Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 2069 Solved: 826[Submit][Status ...