gdb -- 3




概述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,可以找到那些不是一目了然的Bug 单步执行和跟踪函数调用list (l)使用list命令可以从main函数的第一行开始列出源代码,也可以显式指定要显示的行数如果什么命令都不输入,直接输入回车,就会重复执行原来的命令<h3>list (l)quit (q)退出start从程序开始处开始执行程序next (n)单步执行(不进入函数)step (s)单步执行(进入函数)backtrace (bt)查看函数调用的栈帧下面是执行结果:(gdb) bt #0 quick_sort (array=0xbffff1c8, beg=0, end=3) at main.c:6 #1 0x080485e4 in main () at main.c:32 可见当前函数 quick_sort 是被 main 函数调用,参数分别是 array、beg、endmain 栈帧编号为 1,quick_sort 栈帧编号为 0info (i)查看局部变量的值(gdb) i locals i = 0 j = 1 frame (f)选
#技术帖    #linux    #unix    #c语言   

200x200


修改 nginx config 并编译默认 nginx 编译后是 release 版本,不允许调试,需要对配置文件进行修改&nbs

#技术帖    #linux    #c语言    #unix网络编程   
概述实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试某个进程,如果该进程fork了子进程,GDB会继续调试该进程,子进程会不受干扰地运行下去。如果你事先在子进程代码里设定了断点,子进程会收到SIGTRAP信号并终止。那么该如何调试子进程呢?其实我们可以利用GDB的特点或者其他一些辅助手段来达到目的。此外,GDB 也在较新内核上加入一些多进程调试支持。follow-fork-mode 方法在2.5.60版Linux内核及以后,GDB对使用fork/vfork创建子进程的程序提供了follow-fork-mode选项来支持多进程调试。follow-fork-mode 的用法set follow-fork-mode [parent|child] parent: fork之后继续调试父进程,子进程不受影响。child: fork之后调试子进程,父进程不受影响。因此如果需要调试子进程,在启动gdb后:(gdb) set follow-fork-mode child 并在子进程代码设置断点。断开调试 -- detach-on-fork参数set detach-on-fork [on|off] on: 断开调试follow-fork-mode指定的进程。o
#技术帖    #linux    #unix    #c语言   



京ICP备15018585号