实用工具命令(utility command)
首先介绍使用crash时的实用工具命令。
set命令
set命令是运用非常广泛的命令。指定进程后,就会将进程的上下文切换到指定的进程,显示这个上下文。没有指定时显示当前进程的上下文。进程上下文的初始值为内核发生重大故障时运行的进程的初始值。
crash>set
PID:1474
COMMAND:"sh"
TASK:ffff88001c5c9740[THREAD_INFO:ffff88001b76a000]
CPU:0
STATE:TASK_RUNNING(PANIC)
使用-c选项可以指定CPU,并显示之前在这个CPU上运行的进程。使用-p选项可以显示发生重大故障时运行的进程。
使用set命令可以确认当前的编辑器设置。
crash>set-v|grep edit
edit:vi
要指定命令行编辑模式时,需要在crash启动时指定。
crash-e[vi|emacs]……
设置为emacs,就可以进行与bash相同的键操作。
crash命令有时会输出大量的信息,可以使用下列命令禁用界面的scroll功能。
crash>set scroll off
此外使用下列命令也可以禁用界面的scroll功能。
crash>sf
sf是通过别名定义设置的,是set scroll off的别名。默认的别名定义可以使用alias来确认。
eval命令
eval命令将输入的表达式的计算结果以十六进制、十进制、八进制以及二进制显示。指定-b选项就会显示在二进制中第几位是1。表达式可以使用四则运算(-、+、*、/、%)、位运算(&、|、^)、shift运算(<<、>>)。
crash>eval 1<<12
hexadecimal:1000(4KB)
decimal:4096
octal:10000
binary:0000000000000000000000000000000000000000000000000001000000000000
crash>eval(~4096-1)
hexadecimal:ffffffffffffeffe
decimal:18446744073709547518(-4098)
octal:1777777777777777767776
binary:1111111111111111111111111111111111111111111111111110111111111110
crash>eval-b 10001e1
hexadecimal:10001e1
decimal:16777697
octal:100000741
binary:0000000000000000000000000000000000000001000000000000000111100001
bits set:24 8 7 6 5 0
ascii命令
ascii命令将十六进制转换为字符串。
crash>rd modprobe_path 2
ffffffff813213a0:6f6d2f6e6962732f 000065626f727064/sbin/modprobe..
crash>ascii 6f6d2f6e6962732f
6f6d2f6e6962732f:/sbin/mo
history命令
history命令显示已输入命令的记录。也可以使用别名h。
crash>history
[1]set
[2]set vi
[3]set scroll off
crash>h
[1]set
[2]set vi
[3]set scroll off