procstack 命令
用途
显示进程中的所有线程的十六进制地址和符号名称。
语法
描述
/proc 文件系统提供控制进程的机制。 还提供了针对进程和线程当前状态信息的访问权,但是采用二进制格式。 proctools 命令提供基于一些可用信息的 ASCII 报告。
许多命令将进程标识的列表或者 /proc/ ProcessID 字符串作为输入。 shell 扩展 /proc/* 因此可用于指定系统中的所有进程。
每个 proctools 命令从 /proc 收集指定进程的信息,并将其显示给用户。 proctools 命令(例如,procrun 和 procstop)使用 /proc 接口来启动和停止进程。
命令从 /proc 中收集的信息是当前进程状态的快照,因此可能在任何时刻都不相同,除了已停止的进程之外。
procstack 命令显示进程中的所有线程的十六进制地址和符号名称。
标志
| 项 | 描述 |
|---|---|
| -F | 强制 procstack 命令控制目标进程,即使另一个进程在控制也是如此。 |
| -g | 阻止将符号名称转换为人们可阅读的名称。 |
| ProcessID | 指定进程标识。 |
示例
- 要显示进程 11928 的当前堆栈,请输入:
此命令的输出类似如下:procstack 1192811928 : -sh d01d15c4 waitpid (?, ?, ?) + e0 10007a1c job_wait (?) + 144 10020298 xec_switch (?, ?, ?, ?, ?) + 9c0 10021db4 sh_exec (?, ?, ?) + 304 10001370 exfile () + 628 10000300 main (?, ?) + a1c 10000100 __start () + 8c - 要为应用程序 appl 显示多个线程进程 28243 的所有线程的当前堆栈,请输入:
该命令的输出类似如下:procstack 2824328243 : appl ---------- tid# 54321 ----------- d0059eb4 _p_nsleep (?, ?) + 10 d01f1fc8 nsleep (?, ?) + b4 d026a6c0 sleep (?) + 34 100003a8 main () + 98 10000128 __start () + 8c ---------- tid# 43523 ---------- d0059eb4 _p_nsleep (?, ?) + 10 d01f1fc8 nsleep (?, ?) + b4 d026a6c0 sleep (?) + 34 10000480 PrintHello (d) + 30 d004b314 _pthread_body (?) + ec ---------- tid# 36352 ---------- d0059eb4 _p_nsleep (?, ?) + 10 d01f1fc8 nsleep (?, ?) + b4 d026a6c0 sleep (?) + 34 10000480 PrintHello (c) + 30 d004b314 _pthread_body (?) + ec
文件
| 项 | 描述 |
|---|---|
| /proc | 包含 /proc 文件系统。 |