kerninfo

来自「geekos 0.3.0简单的操作系统」· 代码 · 共 39 行

TXT
39
字号
#! /usr/bin/perl# A script to analyze the output of "objdump -h" on the# kernel executable file.use strict qw(vars refs);use FileHandle;my $kernfile = shift @ARGV;(defined $kernfile) || die "usage: kernsize <kernfile>\n";my $kern_fh = new FileHandle("<$kernfile");(defined $kern_fh) || die "can't open $kernfile: $!\n";my $objdump_fh = new FileHandle("objdump -h $kernfile|");while ( <$objdump_fh> ) {    chop;    s/^\s+//;    my @fields = split(/\s+/, $_);    if ( $fields[0] =~ /^[0-9]$/ ) {#	print "text start is ", $fields[5], "\n" if $fields[0] eq '0';	my $size = hex($fields[2]);	my $offset = hex($fields[5]);	print $fields[0], " (", $fields[1], "): size=$size, offset=$offset\n";	printf("Word at beginning of section is %08x\n", ReadWord($kern_fh,$offset) );    }}$objdump_fh->close();sub ReadWord {    my ($fh, $offset) = @_;    seek $fh, $offset, SEEK_SET;    my $buf = 'X' x 4;    read $fh, $buf, 4;    return unpack('V',$buf);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?