天天看点

如何使用dbx分析core文件_使用DBX分析AIX下的 CoreDump

使用

DBX

分析

AIX

下的

CoreDump

PS:

Where can you get dbx?

It is part of bos.adt.debug

# lslpp -w /usr/bin/dbx

File Fileset Type

-------------------------------------------

/usr/bin/dbx bos.adt.debug Symlink

以下转自

http://www.aixchina.net/?6141

/viewspace-18882

I core dump

分析入门

AIX

专家俱乐部

E ?!CR8Z#S)[

环境变量设置

`#X`4\]9h|8]0

;Uy%D]6sQ.i9O0

可以通过

/etc/security/limits

文件对各用户的基本配置参数包括

core

小进行限制。或者通过

ulimit

更改当前环境下的

core

大小限制。

AIX

专家俱乐部

vF?I9u:B1@]!HC

c\!v_J-r)r3U0

默认情况下应用进程生成

core dump

时都使用文件名

core

。为了避免同一工

作目录下的进程

core

相互覆盖可以定义环境变量

CORE_NAMING=true

然后启动进程这样

将生成名为

core.pid.ddhhmmss

的文件。可以使用

file

core

命令查看

core

是哪个进程产

生的。

:EvFu#O@$n*s)g0AIX

专家俱乐部

0U(p#k2_:J/} G"v$D.E

默认情况下应用进程

dump

时会包含所有的共享内存如果

dump

时想排除共享内存内容

可以在启动进程之前设置环境变量

CORE_NOSHM=true.

R1I rjg0

9kkS%[email protected]

系统有一个参数

fullcore

用于控制是否在程序

coredump

时生成完整的

core

。为避免信息丢失建议打开

fullcore

。可以使用

lsattr

El sys0

查询是否将

fullcore

开使用

chdev

-l

sys0

-a

fullcore=true

fullcore

状态更改为打开。也可以在程序内部调用

sigaction

例程设置

fullcore

参考如下测试程序

AIX

专家俱乐部

~*Pp~3Qi

@4L3gNuy_0fullcore

设置示例

AIX

专家俱乐部

n4m4E,c/{ ewz

8g|9zx9Gv'F0//test.CAIX

专家俱乐部

5D@)bx*?)F

#include AIX

专家俱乐部

?&Q'NC!rB*ox

#include 

[email protected]

专家俱乐部

[email protected]{(K

int main(int argc, char* argv[])AIX

专家俱乐部

4s$Q0QY5j6N)?6Z,M/z

{

[-lfWBAL0 char str[10];AIX

专家俱乐部

J&Bo'CS5q

struct sigaction s;

azZqqo-oWO-f?0 s.sa_handler = SIG_DFL; AIX

专家俱乐部

t"?:[j h,jD

s.sa_mask.losigs = 0;