欢迎来到天天文库
浏览记录
ID:48315231
大小:32.50 KB
页数:3页
时间:2020-01-13
《AIX系统core文件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Ldd可以查看程序调用了哪些库文件。当进程在异常终止运行时,系统会把该进程对应的地址空间中的数据写到core文件中(这个过程被称为dump),以便程序员对其进行分析,找出进程异常终止的原因。缺省情况下,异常终止的进程在启动它的当前目录下产生core文件。在AIX4.3.3中,所有的core文件的文件名都是core,如果不只一个程序产生dump或者相同的程序dump多次,它们都会产生相同文件名的core文件,那么就会丢失比较早的core文件。从AIX5.1开始,改变了core文件的命名方法,使得每一个core文件拥有惟一的文件名,从而避免了新的core文件覆盖旧的core文件,这个特色更加有助
2、于程序员调试和跟踪运行失败的程序。默认情况下,一个core文件的文件名是core。要使用AIX5L中core文件命名的新方法,就要把CORE_NAMING环境变量的值设置为yes。在AIX5L中,把当前用户的CORE_NAMING环境变量的值设置成yes之后,随后启动的进程产生的core文件名才能惟一的。新的core文件名的格式是core.pid.ddhhmmss。其中pid是进程号,dd是当前月份中的日子,hh表示小时,mm表示分,ss表示秒。对于一个占用内存资源很大的进程产生的core文件也非常大,因此如果经常有进程产生core文件,而core文件名都不相同,那么产生的core就会占用非
3、常多的文件系统空间,所以系统管理员要定期为程序员收集这些core文件,并删除这些文件。在AIX5.3中,用户可以设置产生压缩的core文件和指定一个目录来保存core文件,用lscore命令查看当前用户或指定用户的core设置,例如:$lscorecompression:offpathspecification:offcorefilelocation:notsetnamingspecification:off$要查看peter用户的core设置,命令是lscorepeter。查看整个系统的core设置,命令是lscore–d用chcore命令修改当前用户的core设置,例如:$chcore–
4、con–pon–l/tmp/coredir–non上面的命令修改当前用户的core设置,-con参数的作用是打开压缩core文件功能,用户可以用uncompress命令来解压缩,-pon参数的作用是打开指定的core文件位置,保存core文件的目录是由-l参数指定为/tmp/coredir目录,-non参数的作用相当于把CORE_NAMING环境变量值设置为yes。其中on表示打开这些功能,将on换成off表示关闭这些功能。如果要修改指定用户的core设置,在上面的命令最后加上用户名,要修改整个系统的core设置,在上面的命令最后加上-d即可。其实每个用户的core设置保存在/etc/sec
5、urity/user文件中,chcore和lscore命令存取user文件的内容,读者可以参考user文件的内容用vi来设置某个用户的core设置。每一个coredump会产生一个新的错误日志记录。用errpt命令查看这样的错误日志记录可以帮助程序员识别导致coredump的应用程序。程序员可以用dbx命令来调试产生core文件的程序,要用dbx命令调试有问题的程序时,必须保证core文件和产生core文件的程序都在当前目录下,调试程序的最简单的命令格式如下:$dbxProgramFileCoreFile在core文件目录下输入dbx输入导致core的程序名输入whereProgramFil
6、e是程序文件名,CoreFile是core文件名。在dbx中用where子命令可以查看程序在异常终止时正在执行的函数名,也就是说能够查看程序在执行哪个函数时而异常终止的,然后在源程序中找这个函数,再进一步定位异常语句。dbx命令的详细用法读者可以参考dbx命令的手册。当一个进程正在运行时,如果程序员想获得这个进程所占内存空间中的内容,可以用gencore命令把这个进程对应的地址空间中的数据写到一个指定的文件中,gencore命令并不会终止进程的运行。例如要把进程号为3682983的进程的内存镜像写到文件名为/tmp/core.3682983的文件中,命令如下:$gencore3682983/
7、tmp/core.3682983如果gencore命令指定的core文件名带有路径,那么用chcore命令所修改的core设置中core文件名和core文件保存目录就无效了。
此文档下载收益归作者所有