linux gdb 导出到文件怎么打开,GDB基本命令从打开文件到调试结束的教程
基于ARM核的芯片具有低功耗、高性能的特点,广泛应用于嵌入式Linux产品中,系统内核调试是建立系统软件平台的一个关键辅助技术。 接下来是小编为大家收集的GDB基本命令从打开文件到调试结束的教程,希望能帮到大家。
GDB基本命令从打开文件到调试结束的教程
事前准备
1 gcc -g -o 将原文件编译成可以让gdb调试的目标文件
2 gdb 打开要调试的目标文件
3 set args 设置参数
或者run的时候用run 来实现
4 show args 参看参数
5 show environment 查看environment
5 unset env 清除所有环境变量
6 set environment 来设置一个环境变量VAR1
设置/删除断点
1 info sources 或 list 来查看文件,要不然都不知道应该在哪里设置断点
2 查看断点 info breakpoints
3 break
4 tbreak 设置临时断点,到达后被自动删除
5 enable
enable delete
enable once
6 disable
7 delete breakpoints 删除断点
或单用delete而不加任何参数来删除所有断点
->断点进阶
1 break test.c:5 设置断点到指定文件
2 break 在内存某一个位置出暂停
3 break if 来设置条件断点
4 condition 对已存在的断点附上条件
5 command 可以在第n个断点出设置命令
开始调试
0 run 程序开始执行
1 step or s 单步执行
2 next or n非进入式单步执行,就是说,当调用其他函数时,不进入那个函数内部
3 finish 一直运行到函数返回
4 until 运行到函数某一行
5 continue or cont 执行到下一个断点或程序结束
6 return 改变程序流程,直接结束当前函数,并将指定值返回
设置变量
set
1 set i = 5 改变程序中一个变量的值
2 set $i =5 来设置一个pdb环境里自己的变量,该变量独立于程序,也就是说只有gdb认识
获取程序信息
1 监视变量
print /fmt 打印信息
fmt格式,有以下几种
------------------------------
x 十六进制
------------------------------
d 十进制
------------------------------
u 无符号数
------------------------------
o 八进制
------------------------------
t 二进制
------------------------------
a 十六进制打印
------------------------------
c 字符格式
------------------------------
f 浮点数
------------------------------
2 追踪变量
watch 追踪被赋值动作 eg. i = 4;
rwatch 追踪读动作 eg. b = i;
awatch 追踪所有动作
del watchpoint .
info display
display
show display
del display
3 监视内存
x /
Address可以是内存地址或是指针,比如0x8799f000,p,&var
fmt 由三部分组成 NFU,N表示要查看的长度,U为格式,其中有分为bhwg,分别表示以字节,半字,字,双字
来显示。
eg.
(gdb) x argv[0]
0xbfffff61: 0x6d6f682f
(gdb) x /10cb argv[0]
0xbfffff61: 47 '/' 104 'h' 111 'o' 109 'm' 101 'e' 47 '/' 67 'C' 104 'h'
0xbfffff69: 97 'a' 114 'r'
(gdb) x /10tb
12
0xbfffff6b: 01101100 01100101 01110011 00101111
01110111 01101111 01110010 01101011
0xbfffff73: 01110000 01101100
(gdb) x /10th
0xbfffff7f:
0110101101101111 0111010000101111 0110000100000000
01100010000000110001100000000 0110010000000000 0110010100000000 0110011000000000
0xbfffff8f: 0110011100000000 0101011000000000
(gdb)
4 查看总的frame信息
backtrace 或者 bt
说明:frame是函数调用时候所产生的堆栈,存储函数被调用的信息
5 选择要查看的frame
frame
看了“GDB基本命令从打开文件到调试结束的教程”还想看:
linux gdb 导出到文件怎么打开,GDB基本命令从打开文件到调试结束的教程相关推荐
- Linux怎么导出inx格式文件,inx文件扩展名,inx文件怎么打开?
.inx 文件类型1:Compiled Script 文件说明:Contains installation instructions for an InstallShield software ins ...
- Linux命令全家桶以及vim/gcc/gdb/makefile/yum
基本指令 ls指令:对于目录,列出该目录下的所有子目录与文件:对于文件,列出文件名以及其他信息. ls -l //一行只输出一个文件 pwd指令:显示当前用户所在目录 cd指令:改变工作目录,将当前工 ...
- linux C/C++ 后端服务问题排查(gdb, pstack,valgrind)
在linux上运行的c/c++程序,一般是没有界面的,一般都需要打印运行日志,通过日志来定位问题.但是日志不是万能的,有时候日志没有输出我们的想要的信息,如果增加日志还要程序重新编译部署发布,如果是生 ...
- 【ArcGIS Pro二次开发】(17):打开GDB、SHP、CAD等各种数据
一.打开GDB数据库 // 输入一个数据库路径string gdbPath = @"C:\Users\Administrator\Documents\ArcGIS\Projects\Test ...
- linux文件明明存在却无法vim打开_教你几招,让你vim编辑器变得友善起来(特别水,不要点进来)...
什么是 vim? Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 简单的来说, vi 是老式的字处理器,虽然功能还算齐全,但是现在 ...
- linux打开u盘里的文件,Linux下U盘内容为只读文件不能存储其他内容的解决办法
不知道什么情况最近u盘出现问题了,打开u盘后所有的文件上面都有了个上锁的标志,刚开始没太在意,然后想要继续在u盘中存东西时才发现根本存不进去,百度之后才知道是此时u盘内容都是只读文件,那要怎么解决这个 ...
- linux c用open打开(创建)一个文件
1.文件描述符 Linux操作系统内核(kernel)利用文件描述符来访问文件,文件描述符大于等于0,是一个用户描述被打开文件的索引值,它指向该文件的相关信息记录表,当文件打开或者创建新文件的时,就会 ...
- linux打开光盘文件怎么打开方式,ISO是什么文件?用什么打开?
ISO是什么文件? ISO英文全称Isolation,镜像文件的后缀名,通过特定的压缩方式,将大量的数据文件统一为一个后缀名为ISO的镜像文件,然后在将这些ISO镜像文件刻录到光盘中去,实际上ISO文 ...
- Java:使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开
使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开 问题 方案 问题 在SpringBoot项目中,使用POI导出查询结果至Excel文件中,成功导出后打开Excel文件 ...
- 打开excel显示php拓展名,phpexcel 导出excel 因为文件格式或文件扩展名无效,请确定文件未损坏,并且文件扩展名与文件的格式匹配...
phpexcel导出excel:打开出现这个错误,强制打开是乱码 $objPHPExcel =newPHPExcel(); $filename ="test.xls"; heade ...
最新文章
- golang 库 go-restful 中 https basic authentication 基础认证实例
- DeepFaceLab史上最快的环境搭建(虚拟环境)
- scanperiod 不生效
- java char指针数组_sizeof与strlen使用,字符串指针数组
- Opencv实现利用滑动条来调整阈值
- ENGINE_API CXNoTouch
- C++ 命名空间三种用法
- 面试字节跳动,我被怼了....
- [Simulink]非线性系统模型建立及相轨迹
- 在Vue中使用Aliplayer,做视频播放或者视频监控
- 在Arcgis地图中插入表格
- 可视化数据库监控警报工具 —— Sampler
- I Love ces(大小写字母转换 金马五校赛-上海大学)
- 12306余票查询(六)——优化页面结构,加入js请求数据部分
- 如何生成随机数(模拟掷骰子的过程)-C语言
- 大数据市场年均增长30% “个人信用当钱花”安全吗?
- 计算机网络【1】 TCP/IP
- 墨珩科技荣获“高新技术企业”认定
- 中小学数学卷子自动生成程序-----队友项目评价
- 移动互联网应用技术架构简介-Restful服务
热门文章
- 在Red Hat Enterprise Linux 上如何安装openoffice
- MCU芯片缺货涨价 国内厂商机遇和挑战并存
- 解决问题:Exception during message handling: Unacceptable CPU info: CPU doesn't have compatibility...
- handler机制和异步更新UI页面
- vsftpd之启用OpenSSL认证
- typeof, offsetof, container_of宏
- Spring Security3源码分析-LogoutFilter分析
- H3C交换机创建ssh用户登录和设置aux密码
- vs2005设置使用符号服务器
- (原创)创建windows域---深入理解域概念