AIX 调试工具
2010-03-25 00:00:00 来源:WEB开发网可以使用以下工具检查进程或核心。所有命令都以 proc<cmd> 开头。在生产环境中检查进程时应该特别小心,因为这些工具在进行检查时实际上会停止进程。
procstack 输出进程的堆栈跟踪。
procflags 输出进程的未处理信号和持有的信号。
procsig 输出进程的信号操作和处理程序。
procfiles 报告每个进程中所有打开的文件的 fstat 和 fcntl 信息。
procwdx 输出分别用于停止和重新运行进程的 procstop 和 procrun 的当前工作目录。
proctree 输出包含指定进程 ID (PID) 或用户的进程树,子进程相对于父进程缩进显示。
观察进程
truss 生成跟踪信息,包括进程执行的系统调用、它收到的信号和它导致的机器错误。在默认情况下,不跟踪用户级函数。可以使用 truss -u '*' -p <pid> 启用对所有用户级函数的跟踪。
有用的选项:
-p 提供 PID。
-u [!] [LibraryName [...]::[!]FunctionName [...] ] 跟踪从用户库动态装载的用户级函数。
-a 显示每个 exec() 系统调用中传递的参数字符串。
-f 跟踪通过 fork() 或 vfork() 创建的所有子进程,跟踪输出中包括它们的信号、错误和系统调用。
-m [!]Fault 跟踪进程中列出的机器错误(见 sys/procfs.h 头文件)。
-s [!] Signal 允许列出要跟踪或排除的信号。
使用 truss 跟踪 SUID 进程
不允许使用 truss 跟踪通过 SUID 作为另一个用户运行的命令,因为系统认为它不属于您使用的用户。系统会显示以下错误:
# truss -deaf -o truss.out program
truss: 0915-015 Cannot create subject process.
wait4all: i: 0, status: 32512, pid: 643282, created: 0
更多精彩
赞助商链接