AIX 下的 core dump 分析入门
2008-11-10 08:27:41 来源:WEB开发网默认情况下,应用进程 dump 时会包含所有的共享内存,如果 dump 时想排除共享内存内容,可以在启动进程之前设置环境变量 CORE_NOSHM=true.
系统有一个参数 fullcore 用于控制是否在程序 coredump 时生成完整的 core。为避免信息丢失,建议打开 fullcore。可以使用 lsattr –El sys0 查询是否将 fullcore 打开,使用 chdev -l sys0 -a fullcore=true 将 fullcore 状态更改为打开。也可以在程序内部调用 sigaction 例程设置 fullcore,参考如下测试程序:
fullcore 设置示例
//test.C
#include <iostream>
#include <signal.h>
int main(int argc, char* argv[])
{
char str[10];
struct sigaction s;
s.sa_handler = SIG_DFL;
s.sa_mask.losigs = 0;
s.sa_mask.hisigs = 0;
s.sa_flags = SA_FULLDUMP;
sigaction(SIGSEGV,&s,(struct sigaction *) NULL);
std::cout << " input str!n" << std::endl;
std::cin >> str;
return 0;
}
寻找 core dump
应用进程的 core 产生在其当前工作目录下,可以在应用程序内部使用 chdir 函数切换当前工作目录。使用 procwdx 命令可以查看进程的当前工作目录。系统的 core 生成在 lg_dumplv 下,并在重启时转移到 /var/adm/ras/ 目录下(如果有足够空间的话,否则继续保留在 lg_dumplv,并随时有可能被覆盖)。
可以使用 errpt -a 查看标识 C0AA5338 SYSDUMP(系统 core)、B6048838 CORE_DUMP(进程 core)的详细错误信息,获取生成 core 的进程以及 core 文件位置。使用 snap –ac 收集系统的 dump 信息。
- ››AIX 下 FTP 服务配置方法
- ››CorelDRAW制作逼真铜质工号牌
- ››CorelDRAW教程:鱼眼工具运用制作精美图案
- ››CorelDRAW 12 与广告设计高级实战 37
- ››CorelDRAW 12 与广告设计高级实战 38
- ››CorelDRAW 12 与广告设计高级实战 39
- ››CorelDRAW 12 与广告设计高级实战 40
- ››CorelDRAW 12 与广告设计高级实战 41
- ››CorelDRAW 12 与广告设计高级实战 42
- ››CorelDRAW 12 与广告设计高级实战 43
- ››CorelDRAW 12 与广告设计高级实战 44
- ››CorelDRAW 12 与广告设计高级实战 45
更多精彩
赞助商链接