GDB操作基本命令
GDB操作基本命令
1 打开文件及退出操作
shell下输入 gdb filename : 打开单个文件
gdb filename -q: 打开单个文件,屏蔽掉GDB自带的说明信息
gdb下输入quit(q),退出调试
2 gdb命令
命令 | 缩写 | 解释 |
file filename | gdb下打开文件 | |
list | l |
显示代码,默认显示10行。输入Enter显示下10行 list可以加入其他参数,如: list 5,10 显示第5行到第10行的代码; list func 显示func函数周围的代码,显示范围和list参数有关; list test.c:5,10 显示源文件test.c第5行到第10行的代码, 一般用于调试含多个源文件的程序。 |
shell clear | 清空shell,清屏 | |
break linenumber/funname | b |
break 6 : 在第6行打上断点,或者在函数上打断点 条件断点: break 6 if n == 0,当变量n==0时,触发断点 |
info | i |
info breakpoints(i b): 显示所有断点 info source 查看当前程序 info stack 查看堆栈信息 info args 查看当前参数值 info reg 输出所有寄存器的当前值 info frame 输出栈帧的使用情况 info b n 其中 n 为指定的断点号,显示指定断点的状态信息,不加参数 n 时,会显示所有的断点的信息 |
disable breaknumber | disable 1 :使得 断点1无法被触发 | |
clear breaknumber | clear 1 :删除N行断点 | |
delete breaknumber | 删除N号断点,默认删除所有断点 | |
run | r | 执行程序 |
next | n | 下一条语句,不会进入函数 |
continue | c | 继续执行 |
step | s | 步进,会进入函数体 |
print 变量名或表达式 | 打印该变量或者该表达式的值 | |
whatis 变量名或者表达式 | 显示该变量或表达式的数据类型 | |
set variable 变量=值 | 给对应的变量赋值 | |
watch variable | 设置观察变量,变量值发生改变时将触发 | |
finish | 跳出当前的函数 | |
GDB调试带入参的程序:
1:gdb 程序名
2:set args "agrs1" "args2"
3:run
GDB操作基本命令的更多相关文章
- gdb调试基本命令(常用)
gdb调试命令 1>. 启动gdb gdb 可执行程序的名字 2>. 查看代码 l -- 查看当前文件 -- 默认main函数 2. 查看其它文件: l 文件名:行号, 显示指定行号的上下 ...
- GDB调试基本命令
一.列文件清单 list / l 列出产生执行文件的源代码的一部分 //列出 line1 到 line2 行之间的源代码 (gdb) list line1, line2 //输出从上次调用list命令 ...
- 【Linux笔记(002) 】-- centos7 文档操作基本命令
一.cd -- ChangeDirectory a) 切换到 /DemoLM/ 文件夹 b) 回到用户 Home 根目录:是哪个账户登录的就会进入哪个用户的根目录 二.pwd -- PrintWork ...
- redis相关操作&基本命令使用
Redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis是 NoSQL技术阵营中的一员,它 ...
- redis操作基本命令
Redis—— Remote Dictionary Server,它是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API,我们 ...
- Rails:Rails使用sqlite3数据库 及数据操作基本命令
Rails默认使用sqlite3做为数据库,虽然很多人更喜欢mysql.但如果是学习用,sqlite3够了,因为它轻量,不需要安装. 首先对sqlite3做个简短的介绍:1.sqlite3不需要配置, ...
- Git操作基本命令
分支开发原则: 如果本地dev分支有修改,则需要先切换到master分支,把本地分支的修改merge回master(git merge dev),然后在master上把合并后的内容push到maste ...
- redis列表操作基本命令
RPUSH:从列表尾部插入一个元素,RPOP:返回列表最后一个元素并从列表删除LPUSH:从列表头部插入一个元素,LPOP:返回列表第一个元素并从列表删除(没看到命名的介绍,个人理解R就是right, ...
- mysql操作基本命令
查看索引 : show index from table_name 创建索引:create index index_name on table_name(column_name) 创建唯一索引:cre ...
随机推荐
- Nginx 之 内存池
1.基本结构 先来学习一下nginx内存池的几个主要数据结构:[见:./src/core/ngx_palloc.h/.c] ngx_pool_data_t(内存池数据块结构) 1: typed ...
- 【我的Android进阶之旅】Android 混淆文件资源分类整理
之前将所有的混淆都配置在一个 proguard-rules.pro 这个Android Studio新建项目时自动生成的文件里面,而随着项目功能迭代越来越多,代码量越来越多,引用的第二方库.第三方库都 ...
- sql之密码保存
HashBytes (Transact-SQL) 其他版本 返回其输入的 MD2.MD4.MD5.SHA 或 SHA1 哈希值. Transact-SQL 语法约定 语法 Has ...
- IT开发工程师的悲哀现状和可能前途
IT开发工程师的悲哀现状和可能前途 本文所指的开发工程师,仅指程序开发人员和以数字电路开发为主的电子工程师.当你选择计算机或者电子.自控等专业进入大学时,你本来还是有机会从事其它行业的,可你毕业时执迷 ...
- nodejs 异步编程 教程(推荐)
有异步I/O就需要异步编程.本课程将着重讲解在学习node.js中关于异步编程的一些问题,以及如何应对这些问题,帮助node.js初学者快速入门. 地址 http://www.hubwiz.com/c ...
- 【Spring Task】定时任务详解实例-@Scheduled
Spring的任务调度,采用注解的形式 spring的配置文件如下,先扫描到任务的类,打开spirng任务的标签 <beans xmlns="http://www.springfram ...
- IDOC 实例测试
这份文档主要是自己学习IDOC的一些练习过程及心得,可能讲的不全面,但应该可以帮助大家了解IDOC的一些工作方式. IDOC或者说是ALE,事实上,是SAP用于分布和集成数据的一种方式.所以,我个人就 ...
- 解决shell脚本参数传递含有空格的问题
有这样一个py文件,需要传一个字典作为参数: import json import sys def parse_params(data): json_data = json.loads(data[1] ...
- python2和python3中range的区别
参考自 python2和python3中的range区别 - CSDN博客 http://blog.csdn.net/xiexingshishu/article/details/48581379 py ...
- lua全局状态机
本文内容基于版本:Lua 5.3.0 global_State概述 global_State结构,我们可以称之为Lua全局状态机.从Lua的使用者角度来看,global_State结构是完全感知不到的 ...