mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
711 B
29 lines
711 B
#!/bin/bash |
|
# SPDX-License-Identifier: GPL-2.0 |
|
# |
|
# Disassemble a single function. |
|
# |
|
# usage: objdump-func <file> <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 <file> <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; } }'
|
|
|