码迷,mamicode.com
首页 > 数据库 > 详细

GDB调试

时间:2015-05-19 20:39:23      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

基本流程

gcc -g file.c -o prog

gdb prog

(gdb) break function_name

(gdb) run

基本常用命令

help

后面跟命令名称可以查看相关命令的用法

list

1. 直接list可以列出当前所在附近的代码,连续的list会顺着上次结束的地方继续列出代码

2. list function_name可以列出该函数附近的代码

info

info break:查看当前设置的断点情况

info locals:查看当前函数内局部变量的情况

info args:查看当前函数的参数情况

print

print variable:打印该变量的值

print *ptr:打印该指针指向的结构的值

print /FMT variable:在输出时指定数值格式,比如print /t var就是以二进制显示数值

  o(octal), x(hex), d(decimal), u(unsigned decimal),

  t(binary), f(float), a(address), i(instruction), c(char), s(string)

  z(hex, zero padded on the left)

set

set varibale=value:修改变量的值

break

break function_name:在函数入口处设置断点

break filename:lineno:在指定文件的第几行设置断点

delete

delete bk1 [bk2 bk3....]:删除指定的断点,可以用info break查看断点编号然后在这里选择删除

delete:不跟参数则可以选择删除所有的断点

continue

继续执行直到下一个断点

next

下一步,会执行整个函数,把函数当成一条语句

step

下一步,会进入函数内部

where:

有时候命令执行太多不知道当前在哪一行了,可以输入where

多线程环境调试

查看线程:

info threads:查看当前程序产生的线程,每个线程有个pid和gdb内部的表示id,在命令中要使用后者。

切换线程:

thread #internal_thread_id

设置断点:

break function_name thread #internal_thread_id

高端功能 

layout:可以打开字符模拟的窗口,实现命令和代码同时显示,有好几个layout

winheight:可以调整layout中不同窗口的高度,src(源码),cmd(命令,就是普通的命令行),regs(寄存器)

fs:切换当前窗口的焦点,一般把它切换到命令窗口中,即fs cmd,这样上下箭头键可以用来翻用过的命令

技术分享

GDB调试

标签:

原文地址:http://www.cnblogs.com/lailailai/p/4515364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!