gdb命令详解
来源:互联网 发布:ps美工视频教程 编辑:程序博客网 时间:2024/05/16 10:43
1.列出文件清单
(gdb) listline1,line2
2.执行程序
使用gdb执行调试程序,默认使用run命令带上一条命令参数,若需要修改参数可使用set args,show args可查看其缺省参数列表。 (gdb) run
3.显示数据
(gdb) print p (p为变量名)(gdb) whatis p //显示命令类型(gdb) print function_name() //对程序中函数调用(gdb) print
4.打断点
break可简写为b(gdb) b line_number(gdb) b function_name(gdb) b routine_name(gdb) b filename:line_number(gdb) b filename:function_name(gdb) b line-or-function if expr //给出条件设置断点
5.管理断点
1)显示断点信息
(gdb)info break
2)删除指定断点
(gdb) delete breakpoint 1 //1为断点编号,若缺省则删除所有断点
3)禁止使用断点
(gdb)disable breakpoint 1
4)允许使用断点
(gdb)enable breakpoint 1
5)清楚某一代码中所有断点
(gdb) clean number
6.变量的检查和赋值
(gdb)whatis: 识别数组或变量的类型 (gdb)ptype: 比whatis的功能更强,他可以提供一个结构的定义 (gdb)set variable: 将值赋予变量 (gdb)print: 除了显示一个变量的值外,还可以用来赋值
7.单步执行
(gdb)next 不进入的单步执行 (gdb)step 进入的单步执行 (gdb)finish 如果已经进入了某函数,而想退出该函数返回到它的调用函数中,可使用命令finish
8.函数的调用
(gdb)call name 调用和执行一个函数
9. UNIX接口
(gdb)shell 命令可启动UNIX外壳,CTRL-D退出外壳,返回到 gdb.
10.gdb多线程
(gdb)info threads //显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。 (gdb) thread ID //切换当前调试的线程为指定ID的线程。 (gdb)break thread_test.c:123 thread all //在所有线程中相应的行上设置断点 (gdb)thread apply ID1 ID2 command //让一个或者多个线程执行GDB命令command。 (gdb) thread apply all command //让所有被调试线程执行GDB命令command。(gdb)set scheduler-locking off|on|step //off 不锁定任何线程,也就是所有线程都执行,这是默认值。 on 只有当前被调试程序会执行。 step 在单步的时候,除了next过一个函数的情况(熟悉情况的人可能知道,这其实是一个设置断点然后continue的行为)以外,只有当前线程会执行。
阅读全文
0 0
- gdb命令详解
- gdb命令详解
- GDB命令详解
- GDB命令详解
- GDB命令使用详解
- gdb使用命令详解
- GDB调试命令详解
- GDB 的命令详解
- 《GDB命令详解》
- GDB调试命令详解
- GDB调试命令详解
- gdb x 命令详解
- gdb命令详解
- gdb和arm-linux-gdb命令详解
- [收藏]gdb的命令详解
- Linux GDB调试命令详解
- gdb参数及命令详解
- Linux 调试器-gdb的命令详解
- POJ2144 轮廓线DP
- DecimalFormat 与double格式化
- HDU 3667 Transportation(建边技巧+最小费用最大流)
- 网络编程(socket)
- PIPELINED管道化(流水线)表函数
- gdb命令详解
- android逆向笔记
- 【Cocos2d-x】开发实战-Cocos中的字符串、标签和中文乱码
- 设计模式->行为型模式->访问者模式
- UVA Live 7958 (Codeforces Gym 101201G) Maximum Islands 二分图染色+匹配
- PLS-00653与管道化表函数的调用
- 解决ubuntu 16.04上sublime text不显示菜单栏问题
- [设计模式]工厂模式
- C++/JAVA/Python联系与区别