调试
文章平均质量分 65
linux_vae
本人除了技术还是技术,专攻linux,学习方向嵌入式。深入学习过linux内核代码。
展开
-
一次虐心的调试-dump分析的基本流程
同事客户端崩溃,索dmp,上windbg:0:000> .ecxreax=00000000 ebx=19eeddb0 ecx=19eeddb0 edx=2b7e011c esi=05beaf80 edi=0167d4c0 eip=004d7bd8 esp=0018f304 ebp=0018f310 iopl=0 nv up ei pl nz na po nccs=0023 ss=002b d...转载 2018-02-24 15:22:09 · 524 阅读 · 0 评论 -
gdb 调试无堆栈??---pthread_join coredump
1) 编译的时候添加编译选项-fstack-protector 和 -fstack-protector-all 这两个选项指示编译器开启栈保护,这样在栈乱序的第一时间可以dump出来现场。可加在Makefile里面, 顺便扯一句,Makefile这种东西对于搞开源软件的人,还真是得精通,我随便想写个Makefile玩着,突然感觉自己头脑一片空白。-fno-omit-frame-pointer 一个...原创 2018-02-06 14:13:14 · 2099 阅读 · 0 评论 -
TCP协议的性能评测工具 — Tcpdive开源啦
Github地址:https://github.com/fastos/tcpdive 为什么要开发Tcpdive在过去的几年里,随着移动互联网的飞速发展,整个基础网络已经发生了翻天覆地的变化。 用户接入网络的方式,除了宽带和光纤之外,还有2G/3G/4G/WiFi,5G也已经在路上了。 作为使用范围最广的传输层协议,TCP诞生于固网时代,在设计之初并没有考虑到上述种种情况, 这导致了它在某些场景下...转载 2018-02-24 15:59:18 · 396 阅读 · 0 评论 -
系统级性能分析工具 — Perf
出处。 http://blog.csdn.net/zhangskd/article/details/37902159目录(?)[+]从2.6.31内核开始,linux内核自带了一个性能分析工具perf,能够进行函数级与指令级的热点查找。 perf Performance analysis tools for Linux.Performance counters for Linux are a ne...转载 2018-02-24 15:54:41 · 257 阅读 · 0 评论 -
Perf 简介 性能调试工具
Perf 简介Perf 是用来进行软件性能分析的工具。通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (per thread),也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。最初的时候,它叫做 Performance counter,在 2.6.31 中第一次亮相。...转载 2018-02-24 15:49:32 · 833 阅读 · 0 评论 -
losf 和strace 句柄泄漏
1. 确定哪个进程在泄漏, 可以用命令 lsof -n|awk '{print $2}'| sort | uniq -c | sort -nr | head ,这个命令找的是打开句柄数目最多的进程, 多敲入几次, 就知道是那个进程在增长了。 而且累积到一定阶段, 泄漏的进程打开的句柄数会增长。 此步骤可以找到泄漏的进程号xxx 2. 利用ps -aux | grep xxx...转载 2018-02-01 19:26:55 · 441 阅读 · 0 评论 -
没core调试
正常运行了几年的程序忽然崩溃了,由于机器没有设置CORE文件,无法从CORE中取得错误信息,程序运行在centOS 7上, 本来对centOS用的也是不熟,只能边查资料边查问题。首先、我需要确认程序是否真的崩溃了,还是别人误操作关闭了。如果程序真的崩溃了,会在系统中留下痕迹,我查了一下,在messages文件中发现了一条信息:xxxxx.o[2374]: segfault at7f0ed0bfbf...转载 2018-01-31 16:55:55 · 216 阅读 · 0 评论 -
GDB 调试C++异常
调试C++异常的两种办法:1) 直接获取异常的相关调用函数,在相应函数处设置断点。2) 利用gdb的catch throw/catch。(程序执行后,方有效)(gdb) bt#0 0x0000003cf592e2ed in raise () from /lib64/tls/libc.so.6#1 0x0000003cf592fa3e in abort () from /lib64/tls/libc...转载 2018-02-05 09:36:11 · 2263 阅读 · 0 评论 -
gdb 栈破坏 寄存器
gdb调试秘籍(寄存器、栈)GDB的常用调试命令大家可以查阅gdb手册就可以快速的上手了,在这儿就不给大家分享了,需要的可以到GDB的官网去下载手册。这里重点分享下GDB调试中的一些寄存器和栈的相关知识用于解决下列gdb调试时的问题:优化的代码在printf或其它glibc函数处core没有检查返回值的函数调用异常导致的异常优化的代码的计算异常的中间过程分析栈溢出导致的core局部变量越界导致栈异...转载 2018-02-02 17:10:42 · 675 阅读 · 0 评论 -
linux程序内存信息pmap
pmaplddstace要熟悉的几个调试命令!两个查看内存的文件$ cat /proc/<pid>/stat | awk '{print $23 / 1024}'$ cat /proc/<pid>/status | grep -i vmsize其中,关于内存的是 VSZ 和 RSS 这两个概念man ps 看看它们的含义:rss RSS resident...原创 2018-02-05 10:41:26 · 340 阅读 · 1 评论 -
gdb调试宏、条件断点、命令行参数
gdb调试宏、条件断点、命令行参数例子:#include <stdlib.h>#include <stdio.h>#define MACRO1(x) (++(x))#define MACRO2(x) (MACRO1(x)+100)#define MACRO3(x) (MACRO2(x)+200)int main(void){ int a = 0; ...转载 2018-02-05 09:52:09 · 1844 阅读 · 0 评论 -
利用进程信息追查内存泄漏
一、问题现象Bigpipe是Baidu公司内部的分布式传输系统,其服务器模块Broker采用异步编程框架来实现,并大量使用了引用计数来管理对象资源的生命周期和释放时机。在对Broker模块进行压力测试过程中,发现Broker长时间运行后,内存占用逐步变大,出现了内存泄漏问题。二、初步分析针对近期Broker的升级改造点,确定Broker中可能出现内存泄漏的对象。Broker新增了监控功能,其中一项...转载 2018-02-06 14:14:54 · 1012 阅读 · 0 评论 -
SysAdmim 必备:系统性能大牛 Brendan Gregg 分享的 Linux 性能工具
Brendan Gregg 目前是 Netflix 的高级性能架构师 ,他在那里做大规模计算机性能设计、分析和调优。他是《Systems Performance》等技术书的作者,因在系统管理员方面的成绩,获得过 2013年 USENIX LISA 大奖。他之前是 SUN 公司是性能领头人和内核工程师,他在 SUN 开发过 ZFS L2ARC,研究存储和网络性能。他也发明和开发过一大波性能分析工具,...转载 2018-02-24 14:23:28 · 633 阅读 · 0 评论 -
服务端段错误
之所以有上篇文章,是因为那个方法就是我在解决这篇文章中的问题时使用的.为了避免篇幅过大,所以分成了两篇专栏.先说说这次崩溃吧,第一次崩溃是晚上7点多,运营同学发来了bt(gdb命令,就是backtrace stack),如下图:看见这种调用栈我的第一想法就是栈越界了,栈越界我一点都不担心,比什么野指针写坏堆好解决多了,因为离"犯罪现场"近啊.上一篇专栏里说过,无法回溯调用栈有可能是"调用栈链表头"...转载 2018-02-24 15:27:45 · 648 阅读 · 0 评论 -
一种处理栈越界的方法
在linux下,栈越界写坏返回地址会导致调用栈无法回溯,这就导致我们直接使用bt没有办法查看崩溃时调用栈,今天我讲一下我最近研究出来的一种方法(虽然是原创,但可能互联网上早有人发布过此种方法,只不过我没有查到而已).废话少说,步入正题,首先我写了个简单的程序来构造一个栈溢出的情况,为了使效果更加明显,我使用了一些递归来增加调用栈的深度,代码如下:不要吐槽命名方式,我也知道很丑,栈都能越界的程序,一...转载 2018-02-24 15:26:44 · 827 阅读 · 0 评论 -
gdb 调试入门-bcc&perf-tools
bcc&perf-tools有空要研究一下这两个工具的使用方法没想到Brendan Gregg这样的大牛,会写出这样一篇gdb tutorials文章:gdb Debugging Full Example (Tutorial): ncurses 。但可能正如文章开头所说,大牛对网上的gdb文章都不太满意,所以才有了这篇高质量指南,gdb入门者的福音。—— 何登成如果你是系统管理员,但还不认...转载 2018-02-24 16:40:32 · 1616 阅读 · 0 评论