gdb(一)概述
来源:互联网 发布:ubuntu vbox 打不开 编辑:程序博客网 时间:2024/05/16 00:54
一 GDB的主要功能(man gdb):www.gnu.org/software/gdb/
1)启动你的程序,可以按照你的自定义要求运行程序。
2)使你的程序在特定条件下停止。
3)当程序停止时,检测发送什么事情。
4)Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another.
注意:要调试C/C++程序,必须使用编译器的-g选项把调试信息添加到可执行文件中。如:gcc -g -c hello hello.c
二 GDB的启动方法:
(一)三种启动方法:
1) gdb<program>:program 是你的执行文件。
2) gdb<program> core:同时调试一个运行程序和core文件。core文件是:
3) gdb<program> <PID>:调试运行程序运行时的进程PID。
(二)GDB启动时可以加上一些启动参数,详细的参数通过gdb -help来查看。
*常用的参数:
1) -s FILE,-symbols=FILE:Read symbol table from file FILE.
2)-se=FILE:Read symbol table from file FILE and use it as the executable file.
3)-c FILE,-core=FILE:use file FILE as a core dump to examine.
补充:在一个程序崩溃时,它一般会在指定目录下生成一个core文件。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,主要是用来调试的。core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump.
4)-cd=directory:Run GDB using direction as its working direction,instead of the current direction.
5)-d DIRECTION,-direction=DIRECTION:Add direction to the path to search for source file.
三 GDB的常用命令:
(一)GDB把命令分为许多种类,启动gdb后,查看命令的方法:
1)help命令可以列出命令的种类。如下:
2)如果要看到种类中的命令,需使用help<class>命令,例如:help breakpoints。
3)直接help<command>来查看命令的帮助。
(二)其他:
1)在gdb环境中,可以执行shell命令。格式:shell <command>。
2)在gdb中可以执行make命令来重新build自己的程序。
四 GDB调试方法:
(一)在GDB中运行程序:在gdb中使用run或r命令来运行程序。程序运行前,可以设置如下四个方面的事情:
1) 程序运行参数:
*set args:可指定运行时参数。(如:set args 10 20 30)
*show args:查看设置好的运行参数。
2)运行环境:
*path<dir>:设置程序的运行路径。
*show paths:查看程序的运行路径。
*set environment varname[=value]:设置环境变量。
*show environment [varname]:查看环境变量。
3)工作目录:
*cd <dir>:相当于shell的cd 命令。
*pwd:显示当前所在的目录。
4)程序的输入输出:
*info terminal:显示程序用的终端的模式。
*使用重定向控制程序输出。如:run>txt。
*tty命令指定输入输出的终端设备。
(二)调试已运行的程序方法:
1):用ps查看正在运行程序的PID(进程ID),然后用gdb<program> PID格式挂接正在运行的程序。(ubuntu下需要root权限)
2):先用gdb<program>关联上源代码,并运行gdb,在gdb中用attach命令来挂接进程的PID和detach来取消挂接的进程。
- gdb(一)概述
- GDB调试程序一(概述)
- GDB概述
- GDB概述
- GDB概述
- GDB概述
- GDB概述
- GDB概述
- GDB概述
- GDB概述
- GDB 概述
- GDB概述
- 一、概述
- 一:概述
- 一、概述
- 一 概述
- GDB调试(一)
- GDB初探(一)
- C#图片处理基本应用(裁剪,缩放,清晰度,水印)
- table固定表头
- Android制作logo
- HTML5 经量级框架 jQuery Mobile (配置选项,Enent 事件,主题系统) - 7.9
- 创新以色列
- gdb(一)概述
- java refresh 浏览器定时刷新
- Python Exercise #3
- 转一篇有关Java的内存泄露的文章(受益哦)
- 第八次上机任务 任务一
- android 电池(一):锂电池基本原理篇
- 幸福课思维导图
- JavaScript世界的一等公民 - 函数
- 页面在加载时,等时候的页面(loading……)