Download latest Flex SDKI found that neither Flex SDK 3.5 nor 4.0 stable build can compile abcdump. You need to download later version from the Download Flex site. Flex 4-Beta 2 (126.96.36.19985) works well. I would set the Flex directory to environment variable FLEX.
$ export FLEX=~/Downloads/flex_sdk_188.8.131.5285_mpl
Download and build Tamarin-centralBuilding procedure is well documented in Tamarin_Build_Documentation. Only my additional suggestion is to add --enable-debugger, it makes error messages easy to read, it helps you, really.
$ hg clone http://hg.mozilla.org/tamarin-central/ $ cd tamarin-central $ mkdir objdir-release $ cd objdir-release $ python ../configure.py --enable-shell --enable-debugger $ make $ ./shell/avmshell -Dversion shell 1.5 release-debugger build cyclone features AVMSYSTEM_32BIT; ...
Build abcdumpThere are various useful utilities in utils/ directory. Some utilizes are written in ActionScript, so you need to compile them to use. Abcdump, ABC disassembler, is one of such utilities.
$ cd .. $ java -jar $FLEX/lib/asc.jar -import core/builtin.abc -import shell/shell_toplevel.abc utils/abcdump.ascore/builtin.abc and shell/shell_toplevel.abc are basic libraries provided by tamarin, you can use them to try to see how abcdump works. Note that you need to separate abc file names with --, otherwise arguments are processed by avmshell instead of abcdump.
$ ./objdir-release/shell/avmshell ./utils/abcdump.abc -- core/builtin.abc // magic 2e0010 // Cpool numbers size 158 0 % ...I recommend you to make a tiny shell script to ease such a complicated command line.
#!/bin/sh ~/tmp/tamarin-central/objdir-release/shell/avmshell ~/tmp/tamarin-central/utils/abcdump.abc -- $@
How to use abcasmAbcasm is a ABC assembler. It is written in java and shell script, so you don't need to compile to try it. utils/abcasm/test/ directory includes various interesting sample programs. You can test them easily and quickly.
$ cd utils/abcasm/ $ ./abcasm.sh test/hello.abs test/hello.abs $ ../../objdir-release/shell/avmshell test/hello.abc Hello, world