Linux Debugging (九) 一次生产环境下的“内存泄露”

一个偶然的机会,发现一个进程使用了超过14G的内存。这个进程是一个RPC server,只是作为中转,绝对不应该使用这么多内存的。即使并发量太多,存在内存中的数据太多,那么在并发减少的情况下,这个内存使用肯定会降下来。但是事实上,这个内存会一直涨,直到被OOM Killer杀掉。 由于这个rpc s...

Linux Debugging(八): core真的那么难以追踪吗?

本周遇到了好几个core都很有典型性。在这里和大家分享下。 相信有过Linux编程经验的人,肯定都遇到过。感觉周围人很多对core有天然的恐惧感,尤其对刚入行不久的同学来说。当然了,也有工作好几年看到core也束手无策的。今天就分析一下,core,其实大部分都是很容易解决的。如果一个core很难以复...

Linux Shell 编程

4 课时 |
2099 人已学 |
免费

Linux 运维自动化课程

4 课时 |
1478 人已学 |
免费

LINUX 企业常用服务

7 课时 |
3036 人已学 |
免费
开发者课程背景图

Linux Debugging(六): 动态库注入、ltrace、strace、Valgrind

实际上,Linux的调试方法非常多,针对不同的问题,不同的场景,不同的应用,都有不同的方法。很难去概括。本篇文章主要涉及本专栏还没有涵盖,但是的确有很重要的方法。本文主要包括动态库注入调试;使用ltrace命令处理动态库的调试;使用strace调试系统调用的问题;Valgrind的简要介绍。 1. ...

Linux Debugging(五): coredump 分析入门

        作为工作几年的老程序猿,肯定会遇到coredump,log severity设置的比较高,导致可用的log无法分析问题所在。 更悲剧的是,这个问题不好复现!所以现在你手头唯一的线索就是这个程序的尸体:coredum...

Linux Debugging(四): 使用GDB来理解C++ 对象的内存布局(多重继承,虚继承)

      前一段时间再次拜读《Inside the C++ Object Model》 深入探索C++对象模型,有了进一步的理解,因此我也写了四篇博文算是读书笔记: Program Transformation Semantics (程序转换语义学...

Linux Debugging(三): C++函数调用的参数传递方法总结(通过gdb+反汇编)

         上一篇文章《Linux Debugging:使用反汇编理解C++程序函数调用栈》没想到能得到那么多人的喜爱,因为那篇文章是以32位的C++普通函数(非类成员函数)为例子写的,因此只是一个特殊的例子。本文...

Linux Debugging(二): 熟悉AT&T汇编语言

    没想到《Linux Debugging:使用反汇编理解C++程序函数调用栈》发表了收到了大家的欢迎。但是有网友留言说不熟悉汇编,因此本书列了汇编的基础语法。这些对于我们平时的调试应该是够用了。 1 AT&T与Intel汇编语法对比   ...

Linux Debugging(一): 使用反汇编理解C++程序函数调用栈

        拿到CoreDump后,如果看到的地址都是????,那么基本上可以确定,程序的栈被破坏掉了。GDB也是使用函数的调用栈去还原“事故现场”的。因此理解函数调用栈,是使用GDB进行现场调试或者事后调试的基础,如果不理解...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

社区圈子

Linux宝库
Linux宝库
1+人已加入
加入
相关电子书
更多
冬季实战营第二期:Linux操作系统实战入门
Decian GNU/Linux安全合规之路
从 Linux 系统内核层面来解决实际问题的实战经验
立即下载 立即下载 立即下载