AIX 调试工具.docx
- 文档编号:2124826
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:12
- 大小:21.51KB
AIX 调试工具.docx
《AIX 调试工具.docx》由会员分享,可在线阅读,更多相关《AIX 调试工具.docx(12页珍藏版)》请在冰豆网上搜索。
AIX调试工具
AIX调试工具
KalyanjiChintakayala,开发人员,IBMDataStageServerEngine,IBM
KalyanjiChintakayala是IBMIndiaSoftwareLabs的开发人员,从事Infosphere的DataStageServerEngine。
简介:
本文讨论帮助应用程序开发人员在AIX®上调试应用程序的工具。
这对于调试信息非常少的客户环境尤其有帮助。
客户报告的bug不一定能够在开发环境中轻松地重现。
应用程序崩溃、挂起和性能低下都可能无法重现。
在这种情况下,需要可以在客户环境中使用的调试工具。
本文讨论一种调试方法和一些常见的问题领域,以及AIX上可用的工具。
注意,本文不讨论性能调试。
AIX环境
当环境中出现问题时,我们首先要查明操作系统版本和使用的硬件。
这个步骤很重要,因为需要确认是否有可以进行调试的可重现环境,如果没有,就需要重新创建相同的环境。
系统配置
通过运行prtconf命令查看总体系统配置。
清单1.总体系统配置
#prtconf
SystemModel:
IBM,8204-E8A
MachineSerialNumber:
06381D2
ProcessorType:
PowerPC_POWER6
NumberOfProcessors:
2
ProcessorClockSpeed:
4204MHz
CPUType:
64-bit
KernelType:
64-bit
LPARInfo:
2ibmmachine
MemorySize:
9344MB
GoodMemorySize:
9344MB
PlatformFirmwarelevel:
NotAvailable
FirmwareVersion:
IBM,EL320_076
ConsoleLogin:
enable
AutoRestart:
true
FullCore:
false
版本和维护级别
以下命令显示AIX的版本、发布版和维护级别。
清单2.AIX的版本、发布版和维护级别
#instfix-i|grepAIX_ML
Allfilesetsfor5.3.0.0_AIX_MLwerefound.
Allfilesetsfor5300-01_AIX_MLwerefound.
Allfilesetsfor5300-02_AIX_MLwerefound.
Allfilesetsfor5300-03_AIX_MLwerefound.
Allfilesetsfor5300-04_AIX_MLwerefound.
Allfilesetsfor5300-05_AIX_MLwerefound.
Allfilesetsfor5300-06_AIX_MLwerefound.
Allfilesetsfor5300-07_AIX_MLwerefound.
#lslpp-hbos.rte
FilesetLevelActionStatusDateTime
----------------------------------------------------------------------------
Path:
/usr/lib/objrepos
bos.rte
5.3.0.50COMMITCOMPLETE10/17/0716:
34:
57
5.3.0.60COMMITCOMPLETE03/11/0816:
08:
59
5.3.7.0COMMITCOMPLETE03/12/0811:
28:
55
#oslevel-r
5300-07
CPU和内核类型
清单3.CPU和内核类型
#bootinfo-K
64
#bootinfo-y
64
已安装的软件产品
清单4.已安装的软件产品
#lslpp-lc|grep-iperl
/usr/lib/objrepos:
perl.libext:
2.1.0.10:
:
COMMITTED:
I:
PerlLibraryExtensions:
/usr/lib/objrepos:
perl.rte:
5.8.2.71:
:
COMMITTED:
F:
PerlVersion5RuntimeEnvironment:
系统运行时间
#uptime
05:
16PMup2days,1:
36,4users,loadaverage:
1.95,1.90,1.80
调试应用程序崩溃的工具
如果一个程序终止了,根据终止类型,可能会生成核心文件(corefile)。
核心文件是终止的进程的映像,即当进程崩溃时内存中所有数据的转储。
当发生以下事件时会生成核心文件:
∙SIGQUIT—退出
∙SIGILL—无效的指令
∙SIGTRAP—跟踪捕捉
∙SIGIOT—结束进程
∙SIGEMT—EMT指令
∙SIGFPE—算术异常、整数被零除或浮点异常
∙SIGBUS—规格异常
∙SIGSEGV—分割违例
∙SIGSYS—参数对于子例程无效
在应用程序崩溃时,不一定会生成核心文件,核心文件还可能不完整。
在这种情况下,可能需要启用核心文件转储或增加核心文件大小。
检查核心文件大小
#ulimit-c
这个命令显示shell核心文件大小的当前值(软限制),这个值应用于从这个shell启动的所有进程。
如果这个值是零,那么执行以下命令把它提高到最大值(硬限制):
#ulimit-c
检查核心的硬限制
#ulimit-Hc
设置全系统范围的核心限制
编辑/etc/security/limits文件,修改软和硬核心大小的
core=
core_hard=
设置全系统范围的软限制的其他方法
在/etc/profile中添加以下设置以设置软限制:
#ulimit-S-c
为特定用户设置软限制或硬限制
chuserattribute=valueusername
可以设置的属性:
∙core—软限制的大小
∙core_hard—硬限制的大小
∙core_path—核心文件目录路径启用/禁用
∙core_pathname—生成核心文件的目录
修改核心文件设置
使用chcore命令修改设置,使用lscore查看当前的核心设置。
启用完整的核心转储
chdev-lsys0-afullcore=true
为正在运行的进程生成核心
gencore实用程序为指定的每个进程创建核心映像。
然后可以通过dbx等调试器使用核心映像。
收集核心文件
snapcore命令收集核心文件、程序和程序使用的库,然后把它们压缩为一个PAX文件。
可以把这个文件传输到调试环境中,使用它判断和解决应用程序的问题。
snapcore-r
PAX文件在/tmp/snapcore目录中生成。
查明创建核心文件的位置和生成它的程序
如果创建了核心文件,错误日志记录进程应该会记录一个错误日志项,这个进程常常在发生第一个软件故障时启动。
1.获取错误日志
清单5.获取错误日志
#errpt-a
LABEL:
CORE_DUMP
IDENTIFIER:
C69F5C9B
Date/Time:
FriNov1317:
04:
55IST2009
SequenceNumber:
235168
MachineId:
000381D2D900
NodeId:
ibmmachine
Class:
S
Type:
PERM
ResourceName:
SYSPROC
Description
SOFTWAREPROGRAMABNORMALLYTERMINATED
ProbableCauses
SOFTWAREPROGRAM
UserCauses
USERGENERATEDSIGNAL
RecommendedActions
CORRECTTHENRETRY
FailureCauses
SOFTWAREPROGRAM
RecommendedActions
RERUNTHEAPPLICATIONPROGRAM
IFPROBLEMPERSISTSTHENDOTHEFOLLOWING
CONTACTAPPROPRIATESERVICEREPRESENTATIVE
DetailData
SIGNALNUMBER
11
USER'SPROCESSID:
765972
FILESYSTEMSERIALNUMBER
8
INODENUMBER
352516
COREFILENAME
/opt/IBM/InformationServer/Server/Projects/sample1/core
PROGRAMNAME
dsapi_slave
PROGRAM_NAME下面指出生成核心的程序。
2.显示错误和相应的时间
可以使用errpt命令显示过去24小时内所有错误的详细报告:
#date
FriNov1318:
18:
33IST2009
#errpt-a-s1112181809
哪个应用程序创建了核心?
清单6.创建核心的应用程序
#lquerypv-hcore50064
Theexecutableislocatedbetweenthepipesontherighthandsideoftheoutputandin
thecasebelow,itisuvsh.
0000050000000001000000000000004300000003|...........C....|
00000510F10001003361BFF80000000000000000|....3a..........|
0000052000120000757673680000000000000000|....uvsh........|
0000053000000000000000000000000000000000|................|
000005400000000000000000000000005A9E9590|............Z...|
0000055000000000000000160000000000000BF1|................|
0000056000000000000000000000000000001019|................|
检查核心文件
对导致核心转储的二进制可执行文件运行dbx。
这会显示出问题的调用。
#dbxexecore
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AIX 调试工具 调试 工具