diff options
author | Rob Landley <rob@landley.net> | 2006-05-07 20:58:55 +0000 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2006-05-07 20:58:55 +0000 |
commit | a336e7cc25703fef6a95238325e3521b32654b0a (patch) | |
tree | bbd7a02ca46d1f967d0535c94d5993d4848864ad /scripts/showasm | |
parent | a3896511152cd5dcd64d2eb4aebcce65b29c6c0b (diff) | |
download | busybox-a336e7cc25703fef6a95238325e3521b32654b0a.tar.gz |
Script to easily get an assembly dump of a single function.
Diffstat (limited to 'scripts/showasm')
-rwxr-xr-x | scripts/showasm | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/scripts/showasm b/scripts/showasm new file mode 100755 index 000000000..046442653 --- /dev/null +++ b/scripts/showasm @@ -0,0 +1,21 @@ +#!/bin/sh + +# Copyright 2006 Rob Landley <rob@landley.net> +# Licensed under GPLv2 or later, see file LICENSE in this tarball for details. + +# Dumb little utility function to print out the assembly dump of a single +# function, or list the functions so dumpable in an executable. You'd think +# there would be a way to get objdump to do this, but I can't find it. + +[ $# -lt 1 ] || [ $# -gt 2 ] && { echo "usage: showasm file function"; exit 1; } + +[ ! -f $1 ] && { echo "File $1 not found"; exit 1; } + +if [ $# -eq 1 ] +then + objdump -d $1 | sed -n -e 's/^[0-9a-fA-F]* <\(.*\)>:$/\1/p' + exit 0 +fi + +objdump -d $1 | sed -n -e '/./{H;$!d}' -e "x;/^.[0-9a-fA-F]* <$2>:/p" + |