【调试】GDB使用总结】的更多相关文章

GDB(GNU Debugger) gcc -g –o testarg testarg.c //可执行文件中带上调试信息,用于后续的gdb调试 gdb testarg l; list //显示源程序 b 6; break 6 //在第6行设置断点 r; run // n; next 单步执行,不跟踪进函数 s:step (into) 单步执行,跟踪进函数 p i; print i 打印变量的值 delete 1 //删除第一个断点 info b //显示所有的断点 disable 1 //让1号…
参考网上的资料,写了一个configprint模块,其功能为打印输出location配置内容,并计数访问次数. 代码链接如下:https://github.com/PaulWeiHan/nginx_module_development 程序的编写到运行总不是一帆风顺的,编译通过,运行不过的情况是最让我抓狂的. 这里记录一下gdb调试过程.供大家参考: (这里没有gdb命令说明,请自行百度) 我使用的是nginx的默认模式即: daemon on; master_process on; worke…
调试是每个程序员都会面临的问题. 如何提高程序员的调试效率, 更好更快地定位程序中的问题从而加快程序开发的进度, 是大家共同面对的问题. 可能Windows用户顺口就会说出:用VC呗 :-) , 它提供了设置断点, 单步跟踪等的图形界面, 使调试起来直观易用. 但Linux用户可能要生闷气了 O:-) : 难道我们Linux程序员就只能使用原始的调试方法, 在代码中加入printf信息吗?难道Linux下就没有好的C语言调试工具吗? 当然不是了. GNU早就组织开发了一套C语言编译器(Gcc)和…
1.1 gdb 调试工具常用命令 list:展开调试的源代码,缩写 l: break:设置断点,缩写为 b: info break:查看断点信息,缩写为 i b delete:删除断点 print:打印变量的值,缩写为 p: run:程序开始运行,缩写 r,在 r 后可以加入程序启动启动参数,程序运行到断点处暂停: step:单步调试,可以进入子函数,缩写为 s: next:单步调试,不进入子函数,缩写为 n: continue:程序继续运行,,到下一断点处暂停,缩写为 c: set args:…
Qt的安装配置请参考本博客本分类下的其他相关文章,本文主要整理在调试时候遇到的问题和解决方法供遇到同样问题的同学参考.由于我之前也没有任何Qt的开发基础,做的也是硬件方面设计,所以这方面基础还是比较薄弱,这儿主要记录摸索过程中的一点心得体会. Qt的安装和初步配置请参见:Qt Creator的配置和开发初步测试 本文的软件环境: Win7 32bit Qt 4.8.4 Qt Creator 2.6.1 MinGW 4.4 摸索了一段时间的Qt和OpenCV,3个平台都有涉及,最大的问题还在于资源…
查看栈信息 当程序被停住了,首先要确认的就是程序是在哪儿被断住的.这个一般是通过查看调用栈信息来看的.在gdb中,查看调用栈的命令是backtrace,可以简写为bt. (gdb) bt    #0 pop () at stack.c:10    #1 0x080484a6 in main () at main.c:12 也可以通过info stack命令实现类似的功能(我更喜欢这个命令): (gdb) info stack    #0 pop () at stack.c:10    #1 0x…
版权声明:本文为博主原创文章,未经博主允许不得转载. 先写个helloworld吧,在Android源码树中创建文件夹external/helloworld,加入文件: // helloworld.c #include <stdio.h> #include <stdlib.h> int main(int argc, char** arv) { printf("Hello world~\n"); ; } # Android.mk LOCAL_PATH := $(c…
gdb常用命令: [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func:在函数func()的入口处设置断点 (gdb) info break: 查看断点信息 (gdb) r:运行程序 (gdb) n:单步执行 (gdb) c:继续运行 (gdb) p 变量 :打印变量的值 (gdb) bt:查看函数堆栈 (gdb) finish:退出函数 (gdb)…
简介 cgdb是一款轻量级的基于gdb的命令行可视化工具,关系大致如下: 尽管gdb本身可以通过layout src的命令显示源码布局,但是其功能还是过于简陋. 使用cgdb并不需要你重新去学习过多额外的命令,你依然可以像原来使用gdb一样去使用它. 安装 直接系统安装(可能非最新版本): sudo apt-get install cgdb 若要安装最新版本,可以从源码编译安装: # 先安装相关依赖(已安装的可略过),以 Ubuntu18.04 为例: sudo apt install auto…
有时候,使用PHP的第三方扩展之后,可能会发生一些错误,这个时候,可能就需要更底层的方式追踪调试程序发生错误的地方和原因,熟悉linux下C编程的肯定不陌生gdb 首先,使用ulimit -c命令,查看系统是否会生成 core文件. #返回结果可能是0 ulimit -c 当返回结果为0时,说明系统不会生成core文件,这个时候使用ulimit -c命令改变系统的默认设置 ulimit -c unlimited #或者 ulimit -c n #n大于0的数字 这样当程序运行错的时候,就会把运行…