gdb的启动
--gdb 程序名 [corefile]
--corefile是可选的,但能增强gdb的调试能力
--强调:启动gdb必须在编译命里加上"-g"参数,"-g"一般写在遍历命令的靠前位置,例如--gcc -Wall -g -o hello.o -c hello.c
"-q"命令
--命令格式:gdb -q 执行程序
--不显示gdb版本信息
gdb命令集合
--直接运行调试命令 gdb 程序名
--"run"
开始调试程序
--"where"
显示导致段错误的执行函数树
--"list[m,n]"
m,n是要显示包含错误首次出现位置的起始行和结尾行。不带参数的list命令将显示附近的10行代码
--"print"
print 变量,表达式
print 'filename'::变量或表达式 --''是必须的,以便让gdb知道指的是一个文件名。
print funcname::变量或表达式
--"whatis"
告诉你变量的类型
--"ptype"
告诉你结构的定义
--"break"
设置断点
break linenum(行号)
break funcname(函数名)
break filename:linenum
break filename:funcname
--"continue"
从断点以后继续执行,并非单步
--"delete"
删除一个端点
语法格式:delete 断点编号
断点编号是由"info break"获取的
--"info break"
查看已设置断点的信息
--"set variable"
命令格式是:set variable varname=value
varname是变量名称,value是变量的新值
gdb单步调试
--"step"
当遇到一个函数的时候,step将进入函数,每次执行一条语句,相当于vs中的F10命令
--"next"
当遇到一个函数的时候,next将执行整个函数,相当于vs中的F5命令
--"return "
相当于在函数中直接return ,并且将value作为返回值返回给调用者。
--如果需要重复执行一条命令,不需要每次都键入命令,gdb记住了最后一个被执行的命令,只要简单的按
enter键就可以重复执行最后的命令
gdb调试带参数的程序
进入gdb调试界面
输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:
set args a.txt b.txt
回车后输入 run
gdb多文件调试
如果调试的文件不在当前目录下,需要将文件目录加载到程序中,如果在当前目录下不需要加载目录
--命令行 "DIR ../common"
在文件中添加断点
--命令行 "bread helper.c:68" 在helper.c文件的第68行加断点
跳出循环:
until LineNum
执行到一个比当前行号大的行,或者也可以指定在当前frame中的某一行 跳出函数:
finish
执行,直到选定的frame执行结束,然后打印返回值,将其放入历史值中,停止
gdb多线程调试
在多线程编程中,经常会遇到死锁问题,这时候需要使用pstack命令来查看线程在哪个函数中锁住了

Linux gdb调试器的更多相关文章

  1. Linux gdb调试器用法全面解析

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序. 让被调试的程序在工程师指定的断 ...

  2. linux基础2——gdb调试器

    gdb调试器使用的一般步骤(不断更新完善): 1.编译过程中要用-g参数来添加调试符号——gcc test.c -g: 2.gdb启动可执行文件——gdb a.out: 3.出现gdb符号表示启动成功 ...

  3. Linux C 程序 函数,数组,指针,gdb调试器(SEVEN)

    函数,数组,指针,gdb调试器 1.函数定义 如果明确指定返回类型,默认为int 参数传递:实参对形参的参数传递是单向的,实参只是把自己的值赋给形参.                      形参的 ...

  4. Linux GDB调试全面解析

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序. 让被调试的程序在工程师指定的断 ...

  5. 使用GDB调试器(一)

    使用GDB调试器 GDB概要---- GDB是GNU开源组织公布的一个强大的UNIX下的程序调试工具.也许,各位比較喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但假设你是在UNIX平台下做软 ...

  6. Ubuntu下GDB调试器的使用

    gdb调试器时一款GNU组织开发.发布的UNIX/Linux环境下的程序调试工具,没有图形界面,但功能强大. GDB使用流程: 先编写一个测试文件gdbTest.c 保存后用gcc对文件进行编译,需要 ...

  7. GCC编译器和GDB调试器常用选项

    http://blog.csdn.net/u014328976/article/details/46745349 GCC编译器 gcc hello.c -o hello                 ...

  8. Mac os系统gdb调试器的安装与使用

    Mac os系统gdb调试器的安装与使用 1.简介 Mac os下的Terminal 终端中默认情况下并没有安装gdb调试器,但是可以通过gcc编译器进行代码编译,如果出错了就需要通过gdb调试器进行 ...

  9. gdb调试器在windows下的相关内容

    1.gdb调试器在visual studio或dev c++中也有类似的调试图形化可视界面,但是gdb不同的是它是由命令行组成,他的界面对于习惯图形化可视界面的用户来说一时间会不知所措 2.通过gcc ...

随机推荐

  1. delphi 获取USB口拔出和插入的状态

    unit USBDeviceNotify;//USB Device arrival or removeinterface uses  Windows, Messages, SysUtils, Clas ...

  2. USB High Speed Inter-Chip (HSIC) IP: What is it? And why should I use it?

    来源: https://www.synopsys.com/dw/dwtb.php?a=hsic_usb2_device What is HSIC? HSIC (High-Speed Inter-Chi ...

  3. 关于在.NET中 DAL+IDAL+Model+BLL+Web

    其实三层架构是一个程序最基本的 在.Net开发中通常是多层开发比如说    BLL 就是business Logic laywer(业务逻辑层) 他只负责向数据提供者也就是DAL调用数据 然后传递给 ...

  4. iOS统计项目的代码总行数

    如果要统计ios开发代码,包括头文件的,CD到项目目录下,命令如下 ① 列出每个文件的行数 find . -name "*.m" -or -name "*.h" ...

  5. javascript数据类型检测方法

    一.字符串.数字.布尔值.undefined的最佳选择市使用 typeof 运算符进行检测: 对于字符串,typeof 返回"string" 对于数字,typeof 返回" ...

  6. 一起來玩鳥 Starling Framework(7)MovieClip

    承上一篇,我們接著來講最後一個IAnimatable類別,MovieClip.Starling的MovieClip跟native的MovieClip不太一樣,它只能接收一個Vector.<Tex ...

  7. tomcat进阶操作

      1.使用war包部署web站点 [root@tomcat webapps]# pwd /application/tomcat/webapps [root@tomcat webapps]# rz   ...

  8. RocketMQ之连接以及连接缓存

    发现rabbitmq有一个ConnectionFactory.发现rocketmq好像没这个东西.按道理来说如果每次发送消息都新建一条连接肯定是不可能的. ps:其实之所以是有上面的疑问是因为数据库连 ...

  9. 动态创建的文本框想要加上jQuery的datepicker功能变成日期选择控件该怎么办?

    通常页面输入控件想得到日期选择功能,借助jQuery是这样实现的: 1.载入css和js <script src="jqueryui/jquery-ui.js" type=& ...

  10. 可伸缩Web架构与分布式系统(2)

    开源软件近年来已变为构建一些大型网站的基础组件.并且伴随着网站的成长,围绕着它们架构的最佳实践和指导准则已经显露.这篇文章旨在涉及一些在设计大型网站时需要考虑的关键问题和一些为达到这些目标所使用的组件 ...