linux-yocto/scripts/objdump-func
Josh Poimboeuf 21e350233b scripts: Create objdump-func helper script
Add a simple script which disassembles a single function from an object
file.  Comes in handy for objtool warnings and kernel stack traces.

Originally-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/3eb3f091fd6bd9caba50392ceab98ce756804f3b.1650578171.git.jpoimboe@redhat.com
2022-05-12 10:08:43 -07:00

711 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 FUNC=$1; shift

Secret feature to allow adding extra objdump args at the end

EXTRA_ARGS=$@

Note this also matches compiler-added suffixes like ".cold", etc

${OBJDUMP} -wdr $EXTRA_ARGS $OBJ | gawk -M -v f=$FUNC '/^$/ { P=0; } $0 ~ "<" f "(\..*)?>:" { P=1; O=strtonum("0x" $1); } { if (P) { o=strtonum("0x" $1); printf("%04x ", o-O); print $0; } }'