易截截图软件、单文件、免安装、纯绿色、仅160KB

一种定位内存泄露的方法(Linux)

目的:
本文是《一种定位内存泄露的方法(Solaris)》对应的Linux版本,调试器使用gdb。主要介绍实例部分。其他请见《一种定位内存泄露的方法(Solaris)》。
实例:
模拟new失败的程序:
#include <stdexcept>
class ABC
{
public:
        virtual ~ABC(){}
        int i;
        int j;
};
 
void f()
{
        for (int i = 0; i < 1000; ++i)
        {
                ABC* p = new ABC;
        }
        throw std::bad_alloc();
}
 
int main()
{
        f();
        return 0;
}
1) 编译运行此段代码。产生一个core文件
2) 用gdb打开这个core文件:
gdb a.out core
(gdb) run
Starting program: /test/new_fail/a.out
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
 
Program received signal SIGABRT, Aborted.
0x00007ffff733f645 in raise () from /lib64/libc.so.6
(gdb) info proc
process 10683
cmdline = '/test/new_fail/a.out'
cwd = '/test/new_fail'
exe = '/test/new_fail/a.out'
(gdb) shell pmap 10683
10683: a.out
START               SIZE     RSS     PSS   DIRTY    SWAP PERM MAPPING
0000000000400000      4K      4K      4K      0K      0K r-xp /test/new_fail/a.out
0000000000600000      4K      4K      4K      4K      0K r--


相关文档:

Linux 文件和目录的属性


Linux 文件和目录的属性
作者:北南南北
来自:http://www.linuxsir.org/main/?q=node/196
摘要:本文讲述的是文件或目录的属性,比如节点inode、文件类型、文件权限及归属;还对setuid、setgid及粘贴位进行了一般性的讲解。对ln
、chmod、umask、chown、chgrp 、touch 的用法也进行了比较详细的说明和举例;
目录 ......

Linux进程间通讯之信号量

一. 什么是信号量
信号量(Semaphore)-- 相当一个信号灯,程序里是一个非负整数,表示状态.
可以用来保护两个或多个关键代码段,这些关键代码段不能并发调用。在进入一个关键代码段之前,线程必须获取一个信号量。
如果关键代码段中没有任何线程,那么线程会立即进入该框图中的那个部分。一旦该关键代码段完成了,那么该 ......

linux和Unix

一、理解Linux的单用户多任务,多用户多任务概念;
Linux 是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念;
1、Linux 的单用户多任务;
单用户多任务;比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐; ......

linux Kill多个进程

经常需要Kill多个进程,这些进程包含共同的关键字,可以用一条命令Kill掉它们。 ps aux | grep "common" | cut –c 9-15 | xargs kill –9 管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的几个命令: "ps aux" 查看所有进程的命令。这时检索出的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号