系列文章目录
GDB再学习(1):前言
GDB再学习(2):编译
GDB再学习(3):GDB的启动和运行
GDB再学习(4):程序准备
GDB再学习(5):常用指令介绍
GDB再学习(5.1):常用指令介绍_print/display_查看变量或寄存器中的值
GDB再学习(5.2):常用指令介绍_examine_查看内存区域的数值
GDB再学习(5.3):常用指令介绍_backtrace_查看函数栈
GDB再学习(5.4):常用指令介绍_ptype/whatis_查看程序符号表
GDB再学习(6):断点调试之软件断点
GDB再学习(7):断点调试之硬断点
GDB再学习(8):断点调试之数据断点
GDB再学习(9):断点调试之事件断点
GDB再学习(10):线程调试相关
GDB再学习(11):如何生成Core文件
GDB再学习(12):gdb server的使用
1 指令说明
ptype和whatis都可以用来查看符号表。
2 代码准备
使用如下代码进行测试
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <stdlib.h>
int j = 0;
int test2()
{
char* s8Buf = NULL;
strcpy(s8Buf, "8888");
return 0;
}
int main()
{
int i = 0;
for (i = 0; i < 60; i++)
{
j++;
printf("-------->index %d\n", i);
sleep(1);
}
test2();
return 0;
}
3 指令测试
3.1 ptype xxx
xxx可以是变量、函数名、结构体等。
(gdb) ptype test2
type = int ()
(gdb) ptype j
type = int
(gdb)
3.2 whatis xxx
xxx可以是变量、函数名、结构体等。
(gdb) whatis test2
type = int ()
(gdb) whatis j
type = int
(gdb)