[comp.sys.sun] disassemblers for Sun

yuval@sun.com (Gideon Yuval) (01/03/89)

E-mail to    info-server@sh.cs.net, where the message-body is

request: mod.sources
topic: help
topic: 68kdisassem
topic: 68kupdate
request: end

will get a pretty good Sun disassembler E-mailed back to you (Deo volente).
-- 
Gideon Yuval, yuval@taux01.nsc.com, +972-2-690992 (home) ,-52-522255(work)
 Paper-mail: National Semiconductor, 6 Maskit St., Herzliyah, Israel
		TWX: 33691, fax: +972-52-558322

dupuy@columbia.edu (Alexander Dupuy) (01/03/89)

One of the nice things about the Unix philosophy is that you can take
tools which don't do quite what you want (or perhaps in your case, more
than you want) and to some extent create new interfaces for them.  One of
the easiest ways to do that is with a shell script:

	#!/bin/sh -
	echo 'start,etext?i' adb $1

does just about exactly what you want - though it's not quite as useful
for dynamically linked excutables.

@alex

battan@tc.fluke.com (Jim Battan) (01/03/89)

adb can still handle Mr. Kerchen's problem.  The adb map contains the
start of the text space ($m).  Use something like this to get the start:

ENTRY=`echo '$m' | adb $1 - | sed -n '2s/b1 = \([!-~]*\).*/\1/p'`;;

Then, use something like this to disassemble everything from the entry
point to the end of the text segment:

echo "${ENTRY-<e},-1?ia" |
    adb $1 - |
	sed '/^text address not found/ { s/.*//;q; }'

Wrap this all in a shell script, and "there it is"!  This is useful on any
Sun architecture (the adb maintainers do the porting work for you).  The
only problem is that it starts doing weird things around data that aren't
real machine code.  But you can usually tell what's real and what's not.

Jim Battan (+1 206 356 6469)
battan@tc.fluke.COM || {sun,uw-beaver,decvax!microsoft}!fluke!battan