
GDB
hai0808
这个作者很懒,什么都没留下…
展开
-
gdb coredump
写C/C++程序经常要直接和内存打交道,一不小心就会造成程序执行时产生Segment Fault而挂掉。一般这种情况都是因为数组越界访问,空指针或是野指针读写造成的。程序小的话还比较好办,对着源代码仔细检查就能解决。但是对于代码量较大的程序,里边包含N多函数调用,N多数组指针访问,这时想定位问题就不是很容易了(此时牛人依然可以通过在适当位置打printf加二分查找的方式迅速定位:P)。懒人的话还是转载 2016-11-04 14:41:57 · 379 阅读 · 0 评论 -
gdb coredump
一,什么是coredump 跑程序的时候经常碰到SIGNAL 或者 call trace的问题,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。 通常情况下,core文件会包含了程序运行时的内存,寄存器状转载 2016-11-04 14:52:39 · 545 阅读 · 0 评论 -
文章标题
这篇文章非常好,所以转载了下来,作为收藏。topGDB概述 GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许 ,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如 果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、 BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就 是这个道理。 一般来说,GDB主要帮忙你完成下转载 2017-11-30 16:20:00 · 163 阅读 · 0 评论 -
CMake添加-g编译选项
在文件 CMakeLists.txt添加下面一条语句add_definitions("-Wall -g")原创 2018-01-12 16:57:14 · 32783 阅读 · 7 评论 -
cgdb安装与使用
cgdb安装与使用官网:http://cgdb.github.io/安装# wget http://cgdb.me/files/cgdb-0.6.7.tar.gz# tar -zvxf cgdb-0.6.7.tar.gz# cd cgdb-0.6.7# ./configure --prefix=/usr/local# make && make install 使用1:cgdb...转载 2018-04-10 09:18:59 · 925 阅读 · 0 评论 -
查找内存泄漏的一个思路
做了持久压力测试,发现内存增长的很快,注释大法查了半天发现两个泄漏点,不过代码太多了,分开调试又很麻烦,所以就想看看内存里面到底是啥。总结了下方法:1)启动程序2)获取程序的<pid>3)cp /proc/<pid>/maps ./last4)触发内存增长(我这个程序是发包),等到内存增长足够多的时候5)cp /proc/<pid>/maps ./now6) v...转载 2018-04-20 11:31:39 · 730 阅读 · 0 评论 -
cgdb基本用法总结
cgdb的特性高亮的源代码窗口可视化的断点常用功能的键盘快捷键搜索源代码(通过正则表达式)cgdb的安装yum install cgdb1文件对话窗口通过文件对话框窗口,用户可以浏览和选择他们想要查看的文件。它为用户提供了一个与被调试程序有关的所有源代码文件的列表。如果没有文件被显示,可能是因为没有程序正在被调试,或者是因为被调试的可执行程序中没有调试信息,在这些情况下,文件对话...转载 2018-10-17 17:47:57 · 1598 阅读 · 0 评论