mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-05 13:25:20 +02:00

Allow specifying multiple functions on the cmdline. Note this removes the secret EXTRA_ARGS feature. While at it, spread out the awk to make it more readable. Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/0bf5f4f5978660985037b24c6db49b114374eb4d.1681325924.git.jpoimboe@kernel.org
848 B
Executable File
848 B
Executable File
#!/bin/bash
SPDX-License-Identifier: GPL-2.0
Disassemble a single function.
usage: objdump-func [ ...]
set -o errexit set -o nounset
OBJDUMP="${CROSS_COMPILE:-}objdump"
command -v gawk >/dev/null 2>&1 || die "gawk isn't installed"
usage() { echo "usage: objdump-func [ ...]" >&2 exit 1 }
$# -lt 2 && usage
OBJ=$1; shift FUNCS=("$@")
${OBJDUMP} -wdr $OBJ | gawk -M -v _funcs="${FUNCS[]}" ' BEGIN { split(_funcs, funcs); } /^$/ { func_match=0; } /<.>:/ { f = gensub(/.<(.)>:/, "\1", 1); for (i in funcs) { # match compiler-added suffixes like ".cold", etc if (f ~ "^" funcs[i] "(\..*)?") { func_match = 1; base = strtonum("0x" $1); break; } } } { if (func_match) { addr = strtonum("0x" $1); printf("%04x ", addr - base); print; } }'