git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
modpost: fix segfault in sym_is() with prefixed arches
[safe/jmp/linux-2.6]
/
scripts
/
markup_oops.pl
diff --git
a/scripts/markup_oops.pl
b/scripts/markup_oops.pl
index
528492b
..
ce3e40b
100644
(file)
--- a/
scripts/markup_oops.pl
+++ b/
scripts/markup_oops.pl
@@
-1,6
+1,7
@@
#!/usr/bin/perl
use File::Basename;
#!/usr/bin/perl
use File::Basename;
+use Math::BigInt;
# Copyright 2008, Intel Corporation
#
# Copyright 2008, Intel Corporation
#
@@
-153,7
+154,7
@@
while (<STDIN>) {
if ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) {
$target = $1;
}
if ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) {
$target = $1;
}
- if ($line =~ /EIP is at ([a-zA-Z0-9\_]+)\+
(0x
[0-9a-f]+)\/0x[a-f0-9]/) {
+ if ($line =~ /EIP is at ([a-zA-Z0-9\_]+)\+
0x(
[0-9a-f]+)\/0x[a-f0-9]/) {
$function = $1;
$func_offset = $2;
}
$function = $1;
$func_offset = $2;
}
@@
-172,8
+173,8
@@
while (<STDIN>) {
parse_x86_regs($line);
}
parse_x86_regs($line);
}
-my $decodestart =
hex($target) - hex($func_offset
);
-my $decodestop =
hex($target
) + 8192;
+my $decodestart =
Math::BigInt->from_hex("0x$target") - Math::BigInt->from_hex("0x$func_offset"
);
+my $decodestop =
Math::BigInt->from_hex("0x$target"
) + 8192;
if ($target eq "0") {
print "No oops found!\n";
print "Usage: \n";
if ($target eq "0") {
print "No oops found!\n";
print "Usage: \n";
@@
-183,10
+184,7
@@
if ($target eq "0") {
# if it's a module, we need to find the .ko file and calculate a load offset
if ($module ne "") {
# if it's a module, we need to find the .ko file and calculate a load offset
if ($module ne "") {
- my $dir = dirname($filename);
- $dir = $dir . "/";
- my $mod = $module . ".ko";
- my $modulefile = `find $dir -name $mod | head -1`;
+ my $modulefile = `modinfo $module | grep '^filename:' | awk '{ print \$2 }'`;
chomp($modulefile);
$filename = $modulefile;
if ($filename eq "") {
chomp($modulefile);
$filename = $modulefile;
if ($filename eq "") {