`

gdb 调试工具

阅读更多

gdb 调试工具

 

gdb 概述

gdb , GNU Debugger ,用于在 linux 上 调试 c/c++ 程序,

 

参考:

ububtu gdb 指南

 

------

程序的编译

 

用 gcc 编译时,应加上 -g 参数,以让编译出的文件支持 gdb 调试,

 

格式:

gcc -g source_file

 

------

进入 gdb 

 

gdb file 进入 gdb 程序,对 file 进行调试,

 

------

gdb 下的 命令

 

* 程序显示

l , list

显示程序,继续向后显示,

l i , list i

显示 i 行 周围的程序,包括 上下各几行,

l 1

从第1行 开始显示程序,

l - fun_name

显示 函数的程序,

l -

向前显示程序,

l +

向后显示程序,同 l

show listsize

显示1次默认显示几行

set listsize i

设置默认显示 i 行,

 

* 断点

b i , break i

设置 i 行为断点

b fun_name , break fun_name

设置 函数 的入口为断点,

info b,info break

列出断点,第1列为断点编号

d i , delete i

删除 编号为 i 的 断点,

 

* 程序 调试 运行

r , run

运行程序

n , next

单步执行

c , continue

运行,直到下一个断点,或程序结束

s , step

单步进入,如果有函数调用,则进入该函数,

finish

跳出当前函数,返回上级函数,如果当前就是最外层函数则无效,

 

 

* 查看变量

p var_name

显示 变量值

p *array_name@len

显示 数组的值,len 等于数组的长度,可以指定其他值,如 len-1,2,

因为 *array_name 取得了 数组的首地址,数组内存是连续的,因此指定一个长度后,就可以取出连续的值,

例子:

p *arr@len 打印整个数组

p *arr@len-1 打印数组,不包含最后1个值,

p *arr@2 打印数组的前2个元素

info locals

列出 当前函数中,所有局部变量的值

info args

列出 当前函数中,所有参数的值

info catch

列出 当前函数中,异常处理信息

x , examine

显示 指定内存地址中的值

 

* 自动显示

display var_name

设置自动显示的 变量 或 内存地址的值,当程序停住时这些值就被自动显示,

display

显示 被自动显示的 列表,其中第1列时编号

undisplay i

根据编号取消 自动显示

 

* 观察点

watch exp

添加 观察点 - 值写入,当表达式 exp 的值写入时,停止程序,

rwatch exp

添加 观察点 - 值读取,当表达式 exp 的值被读取时,停止程序,

awatch exp

添加 观察点 - 读写,当表达式 exp 的值被 读 或 写 时,停止程序,

info watchpoints

显示所有的 观察点,其中第1列是编号,

delete watchpoint i

删除指定编号的 观察点,

 

* 函数堆栈

bt , backtrace

显示函数的调用堆栈,

f i, frame i

显示第 i 层栈的信息,i=0 表示栈顶,

up , up i 

显示向上 1 或 i 层 栈的信息,

down , down i 

显示向下 1 或 i 层 栈的信息,

info f,info frame

显示当先栈中更多的信息,

 

* 程序跳转

u , until

跳出循环体,

jump i

强制 跳转到第 i 行执行

return

强制 结束当前函数

call fun_name

强制 调用函数

 

* 退出 gdb

q

退出 gdb

 

* 历史命令

回车

重复 上次的命令

 

* 搜索

search xxx

搜索

 

* 寄存器

info registers

查看寄存器

 

 

* 其他

show language

显示当前程序的 语言

 

 

------


分享到:
评论
1 楼 huanhuan519 2012-09-18  
感谢分享~

相关推荐

    gdb调试工具使用手册

    《gdb调试工具使用手册》 GDB,全称GNU Debugger,是Unix及类Unix操作系统上广泛使用的C和C++程序的调试工具。它为开发者提供了丰富的功能,帮助他们跟踪和理解程序的运行过程,定位并修复代码中的错误。本文将深入...

    GDB调试工具指南.pdf

    《GDB调试工具指南》深度解析 一、GDB概览 GDB(GNU调试器)是GNU项目的一部分,是一款广泛使用的开源调试工具,适用于多种操作系统和编程语言,包括C、C++等。它允许开发者在程序运行时进行调试,包括设置断点、...

    Linux下gdb调试工具指南

    ### Linux下gdb调试工具指南:深入解析与实践 #### 引言 在软件开发领域,尤其是对于系统级编程和复杂应用的维护,一个高效、功能全面的调试工具是不可或缺的。GNU调试器(GDB)正是这样一款强大的调试工具,它...

    linux c gdb 调试工具

    以下是对GDB调试工具的详细讲解。 1. **GDB安装** 在大多数Linux发行版中,可以通过包管理器如`apt`或`yum`来安装GDB。例如,在Ubuntu上可以使用`sudo apt-get install gdb`,在CentOS/RHEL上使用`sudo yum ...

    GDB调试工具指南

    ### GDB调试工具指南 #### 一、GDB概述与基本使用 GDB(GNU调试器)是一款功能强大的源码级程序调试工具,主要用于Linux环境下C/C++等语言的程序调试。它允许开发者在程序执行过程中设置断点、单步执行、查看变量...

    gdb调试工具

    《gdb调试工具》是针对程序员和系统管理员的宝贵资源,它主要涵盖了两种经典书籍——"Debug with gdb"和"GDB完全手册"的核心内容。这两本书深入浅出地讲解了如何利用GDB(GNU Debugger)这个强大的开源调试器来解决...

    GDB调试程序[陈皓]&GDB调试工具指南

    《GDB调试程序[陈皓]》与《GDB调试工具指南》这两份PDF文档,是深入了解和精通GDB(GNU Debugger)这一强大调试工具的重要参考资料。GDB是开源世界中广泛使用的C、C++以及其他多种语言的调试器,它允许开发者在运行...

    gdb调试工具详解

    ### gdb调试工具详解 #### GDB概述与优势 GDB,全称为GNU Debugger,是由GNU开源组织发布的强大调试工具,专为Unix系统设计,但在包括Linux在内的多种操作系统中都有广泛应用。GDB之所以受到青睐,主要归功于其...

    gdb调试工具指南

    《gdb调试工具指南》是一本深入探讨gdb这一强大调试工具的专业教程。gdb,全称GNU Debugger,是开源社区GNU项目的一部分,主要用于C、C++、Fortran、Objective-C、Pascal等多种编程语言的程序调试。它提供了一整套...

    Gdb调试工具.rar

    《GDB调试工具详解》 GDB(GNU Debugger)是GNU项目的一部分,是一个强大的源代码级调试器,广泛应用于Linux和其他Unix-like操作系统中。对于软件开发者来说,GDB是理解和解决程序错误的重要工具,它允许程序员在...

    gdb调试工具使用方法

    gdb 调试器的使用方法 怎么打断点 怎么读取寄存器 变量 内存的值得方法

    《GDB调试工具》清晰pdf 版

    ### GDB调试工具详解 #### 一、GDB概述与特点 GDB,全称GNU Debugger,是由GNU项目开发的一款强大且广泛使用的调试工具。它主要用于UNIX类操作系统下的程序调试,包括Linux、BSD等。GDB的核心优势在于其命令行接口...

    GDB调试工具帮助文档

    该资源对GDB调试工具进行了详细的介绍,对于新手,当看完整篇文档后,将对GDB调试工具有完整的认识和大致的操作熟练度

    linux下gdb调试工具的详细介绍

    ### Linux下gdb调试工具的详细介绍 #### 一、gdb简介 GNU调试器(gdb)是一款功能强大的源代码级调试工具,适用于多种编程语言,包括C、C++等。gdb允许开发者在程序执行过程中设置断点、单步执行、查看变量值以及...

    opwrt gdb调试工具.zip

    在标题提到的"opwrt gdb调试工具.zip"中,包含了用于在OpenWrt环境下调试MIPS架构应用程序的必备组件。MIPS(Microprocessor without Interlocked Pipeline Stages)是一种常见的嵌入式处理器架构,广泛应用于各种...

    GDB 调试工具指南

    ### GDB调试工具指南 #### 一、准备工作 在开始使用GDB进行调试之前,我们需要做好一系列的准备工作。首先确保已经安装了GDB工具。对于大多数Linux发行版来说,GDB通常已经预装好了;如果没有安装,可以通过包管理...

    MIPS平台上移植和使用GDB调试工具1.docx

    ### MIPS平台上移植和使用GDB调试工具 #### 一、前言 在嵌入式开发领域,特别是针对特定架构如MIPS(Microprocessor without Interlocked Pipeline Stages)平台的开发过程中,有效地使用调试工具对于提高软件质量...

Global site tag (gtag.js) - Google Analytics