From b163c8eb0370735881d79d20faa4446cc9a782a6 Mon Sep 17 00:00:00 2001 From: Volodymyr Shymanskyy Date: Mon, 7 Oct 2019 22:52:36 +0300 Subject: [PATCH] Add disasm-func.sh --- test/disasm-func.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100755 test/disasm-func.sh diff --git a/test/disasm-func.sh b/test/disasm-func.sh new file mode 100755 index 0000000..188f3ff --- /dev/null +++ b/test/disasm-func.sh @@ -0,0 +1,17 @@ +# +# Utility to disassemble a specific function. +# Usage: +# ./disasm-func.sh ../build/wasm3 i32_Divide_sr +# + +FILE="$1" +FUNC="$2" + +# get starting address and size of function fact from nm +ADDR=$(nm --print-size --radix=d $FILE | grep $FUNC | cut -d ' ' -f 1,2) +# strip leading 0's to avoid being interpreted by objdump as octal addresses +STARTADDR=$(echo $ADDR | cut -d ' ' -f 1 | sed 's/^0*\(.\)/\1/') +SIZE=$(echo $ADDR | cut -d ' ' -f 2 | sed 's/^0*//') +STOPADDR=$(( $STARTADDR + $SIZE )) + +objdump --disassemble $FILE --start-address=$STARTADDR --stop-address=$STOPADDR -M suffix