Quantcast
Channel: GDB –热门技术
Browsing all 17 articles
Browse latest View live

用GDB调试时常用的几个命令

要使用GDB进行调试,要在编译的时候加上“-g”选项: 例: ?View Code BASH 1 2 $ gcc -g main.c -o main $ gdb main 以下是几个常用命令: help:帮助命令,可以直接在help后加要查询的命令。 list:列出源代码,一次列十行。也可以在后面加上函数名查询函数。 start:开始调试,程序运行到main函数入口等待操作。...

View Article



GDB中断点的设置

在进行调试程序的时候会经常需要设置断点,GDB很好的支持了断点。 设置一个断点的命令是break(b).后面加行数或函数名,生成的每个断点都有一个编号。下面列出几个在设置断点时常用到的函数: continue(c):从当前位置连续运行,直到遇到断点。 run(r):从程序开始处连续运行,直到断点。 info(i) breakpoints :显示所有断点。 delete breakpoints...

View Article

使用GDB时设置观察点

调试程序的时候除了要设置断点,有时还需要设置观察点,即监视一个变量,当他的值改变时程序暂停。 设置观察点的命令为:watch. 例如watch  var即为变量var设置一个观察点。 下面是几个经常用到的命令: i watchpoints:显示所有观察点。 x var:打印变量var起始地址一段区域的内存,以字节为单位。

View Article

GDB查看变量的输出格式

今天用GDB调试程序,发现了一个问题,就是查看变量的时候显示格式很不好看,就如我要看一个数组里所有成员的十六进制表示,那么要怎么设置呢? 其实在使用命令print 和 display的时候可以更改显示格式,例如: display /x var 表示把var用十六进制显示。 其他常用的输出格式有有: x:十进制 u:无符号的十六进制 o:八进制 t:二进制 c:字符格式

View Article

找到一篇介绍GDB的文章,不错!

http://dsec.pku.edu.cn/~yuhj/wiki/gdb.html Continue reading →

View Article


调试core文件

经常遇到段错误,用core调试能很轻松的找到出错点。 系统默认是不产生core文件的,要产生core文件,首先用下面的命令查看: ulimit -a 可以看到这一行: core file size          (blocks, -c) 0 现在只要运行命令 ulimit -c unlimited...

View Article

Image may be NSFW.
Clik here to view.

更简单的重现PHP Core的调用栈

作者: Laruence( ) 本文地址: http://www.laruence.com/2011/12/06/2381.html 转载请注明出处 以前, 我曾经介绍过如何通过PHP的Core文件获取信息:如何调试PHP的Core之获取基本信息, 对于调用参数这块, 当时介绍的获取方法比较复杂. 于是今天我为PHP 5.4的.gdbinit做了一个改进, 以后如果你遇到了PHP...

View Article

GDB调试实例两则

#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main() { int n = 0x3fc00000; printf("%f\n", n); return 0; } $ cc main.c -g main.c: In function ‘main’ main.c:9: warning:...

View Article


GDB使用小结

准备 默认情况下,gcc/g++编译的可执行文件是不包含调试信息的,GDB是一个源代码级的调试器,使用GDB调试程序需要程序的源代码、符号及其对应的行号等,其中符号和行号可以是单独的文件,亦可以在编译时嵌入到可执行文件中。使用gcc/g++时使用-g选项即可将必要的调试信息包含到可执行文件中,使用-g3选项还可以将源代码中的宏信息也包含进去。...

View Article


GDB常用调试命令

  命令 描述 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 frame(或f) 帧编号 选择栈帧 info(或i) locals 查看当前栈帧局部变量的值 list(或l) 列出源代码,接着上次的位置往下列,每次列10行 list 行号 列出从第几行开始的10行源代码 list 函数名 列出某个函数的源代码 next(或n)...

View Article

如何写gdb命令脚本

作为UNIX/Linux下使用广泛的调试器,gdb不仅提供了丰富的命令,还引入了对脚本的支持:一种是对已存在的脚本语言支持,比如python,用户可以直接书写python脚本,由gdb调用python解释器执行;另一种是命令脚本(command file),用户可以在脚本中书写gdb已经提供的或者自定义的gdb命令,再由gdb执行。在这篇文章里,我会介绍一下如何写gdb的命令脚本。 (一)...

View Article

段错误等造成死机问题的分析,code分析

1. ulimit -S -c unlimited 2. 在apache主配置文件中增加一行:CoreDump… Continue reading →

View Article

GDB调试实例两则

#include <stdio.h> #include <stdlib.h> #inc […]

View Article


GDB使用小结

准备 默认情况下,gcc/g++编译的可执行文件是不包含调试信息的,GDB是一个源代码级的调试器,使用GDB调 […]

View Article

GDB常用调试命令

  命令 描述 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函 […]

View Article


如何写gdb命令脚本

作为UNIX/Linux下使用广泛的调试器,gdb不仅提供了丰富的命令,还引入了对脚本的支持:一种是对已存在的 […]

View Article

段错误等造成死机问题的分析,code分析

1. ulimit -S -c unlimited 2. 在apache主配置文件中增加一行:CoreDump […]

View Article

Browsing all 17 articles
Browse latest View live




Latest Images