使用
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;