|
|
1.1 ! root 1: #!/bin/sh ! 2: # ! 3: # script to convert Devpac v3 symbol table for Hatari debugger. ! 4: # ! 5: # 2013 (C) Eero Tamminen, licenced under GPL v2+ ! 6: ! 7: usage () ! 8: { ! 9: name=${0##*/} ! 10: echo ! 11: echo "Usage: $name <symbol file>" ! 12: echo ! 13: echo "Convert Devpac v3 symbol table listing (enabled" ! 14: echo "in Listings options) to format understood by" ! 15: echo "the Hatari debugger 'symbols' command." ! 16: echo ! 17: echo "For example:" ! 18: echo " $name FOOBAR.SYM > foobar.syms" ! 19: echo ! 20: echo "ERROR: $1!" ! 21: echo ! 22: exit 1 ! 23: } ! 24: if [ $# -ne 1 ]; then ! 25: usage "incorrect number of arguments" ! 26: fi ! 27: ! 28: if [ \! -f $1 ]; then ! 29: usage "given '$1' symbol file not found" ! 30: fi ! 31: ! 32: # parse symbol information at the end of the file ! 33: awk ' ! 34: /^[0-9A-F]+ [BDT] R / { print $1, $2, $4; next } ! 35: /^[0-9A-F]+ F[DEF].R / { ! 36: if ($2 == "FD.R") type = "D"; ! 37: else if ($2 == "FE.R") type = "B"; ! 38: else if ($2 == "FF.R") type = "T"; ! 39: print $1, type, $3; ! 40: next ! 41: } ! 42: ' $1 | sort ! 43: ! 44: # parse code listing ! 45: # - has problem that in Devpac output the offsets in ! 46: # the code listing part don't take includes into ! 47: # account i.e. they seem wrong ! 48: # ! 49: # works by: ! 50: # - removing columns that confuse rest command line ! 51: # - removing macro etc symbols at zero address ! 52: # - removing (optional) ':' from symbol end ! 53: # - matching addresses & symbol names and print ! 54: # them in 'nm' order ! 55: # ! 56: #cut -b 7,9-17,39- $1 | grep -v 'T 00000000 ' | tr -d : |\ ! 57: # awk '/^[TBD] [0-9A-F]+ [._a-zA-Z0-9]/ {print $2,$1,$3}'
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.