gdb调试(c++)

转载 2017年01月03日 21:49:47

run(r)

运行
start 开始执行程序,停在main函数第一行语句前面等待命令
查看代码  
list(l) 列出附近代码
断点  
break sum 在函数sum入口设置断点
break 1  在第一行设置断点
break *0x80 在地址0x80处设置断点
delete 1 删除断点1
break info 查看断点信息
执行  
next(或n) 执行下一行语句
step(或s) 执行下一行语句,如果有函数调用则进入到函数中
finish 连续运行到当前函数返回为止,然后停下来等待命令
continue 继续执行,相对break
检查代码 和 数据  
print result 查看result变量值
set resule = 0 设置变量的值
   
backtrace(bt) 查看各级函数调用及参数
frame(f) eg: f 1 选择栈帧
info locals 查看当前帧的局部变量值
info frame 有关当前栈帧的信息
info regisiters 所有寄存器的值
退出  
quit 退出gdb调试
   
   
   
 



g++ -g main.cpp -o main 

gdb main

set args (1 2)

例子参考:http://www.cnblogs.com/hankers/archive/2012/12/07/2806836.html

命令参考:http://www.jb51.net/article/36393.htm

在某些时候,很有可能你的变量和GDB中的参数冲突,如:
    
        (gdb) whatis width
        type = double
        (gdb) p width
        $4 = 13
        (gdb) set width=47
        Invalid syntax in expression.

    因为,set width是GDB的命令,所以,出现了“Invalid syntax in expression”的设置错误,此时,你可以使用set var命令来告诉GDB,width不是你GDB的参数,而是程序的变量名,如:
    
        (gdb) set var width=47
        
    另外,还可能有些情况,GDB并不报告这种错误,所以保险起见,在你改变程序变量取值时,最好都使用set var格式的GDB命令。


Linux下C++的编程——GDB进行程序调试

GDB简介我们在Linux下C++的编程——开偏介绍一文中已经简单介绍了GDB的功能,是类Unix系统的主要调试工具,可进行断点调试,跟踪程序,动态改变执行环境等功能。从一个程序开始调试下面我们就从一...
  • luoweifu
  • luoweifu
  • 2015年12月12日 16:50
  • 6787

比较齐全的gdb调试c/c++介绍

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC...
  • janeqi1987
  • janeqi1987
  • 2015年06月25日 14:18
  • 1226

linux下使用GDB调试C/C++总结(图文教程)

一般来说,GDB主要帮助你完成下面三个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) ...
  • SKY453589103
  • SKY453589103
  • 2015年08月05日 10:42
  • 843

Linux下C++可视化调试神器vgdb

Linux下C++可视化调试神器vgdb   2014-09-29 00:20:16|  分类: 技术研究 |  标签:linux  调试  可视化  c/c++  vgdb   |举报 ...
  • zyex1108
  • zyex1108
  • 2017年02月08日 15:12
  • 618

gdb调试c++的STL容器

 我一直都是在Linux下做开发的,但是我对GDB的使用并不多。因为平都是用QtCreator调试程序的。因为工作的原因,以后可能不能再依赖QtCreator了。于是我好好研究一下~ 之前为什...
  • janeqi1987
  • janeqi1987
  • 2015年06月25日 16:28
  • 1032

用GDB调试c/c++程序

GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调...
  • luckywqf
  • luckywqf
  • 2014年02月16日 00:58
  • 4060

GDB 调试技巧(不断更新中......)

一、break到不同类的同名函数 方法: 在函数前面加类名以及作用域运算符 eg : break A::func //break 到类A的func函数 程序如下://gdb...
  • yangbodong22011
  • yangbodong22011
  • 2017年03月29日 18:44
  • 667

gdb 多线程调试

http://hi.baidu.com/hcq11/blog/item/9f5bfc6e696209d680cb4a25.html  http://hi.baidu.com/litto/blog...
  • Challenge_C_PlusPlus
  • Challenge_C_PlusPlus
  • 2015年02月05日 13:49
  • 907

linux下GDB调试C++标准库STL,打印STL对象的内容

示例代码: //============================================================================ // Name ...
  • lclwjl
  • lclwjl
  • 2016年05月12日 10:50
  • 1537

linux下c++文件编译、多文件编译、gdb调试

一. gcc常用编译命令选项 假设源程序文件名为test.c。 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文...
  • yimingsilence
  • yimingsilence
  • 2017年05月15日 15:32
  • 1306
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gdb调试(c++)
举报原因:
原因补充:

(最多只允许输入30个字)