1 {-# LANGUAGE OverloadedStrings #-}
6 import System.Environment
7 import qualified Data.ByteString.Lazy as B
18 cls <- parseClassFile clspath
21 putStrLn "Constants pool:"
22 forM_ (assocs $ constantPool cls) $ \(i, c) ->
23 putStrLn $ printf " #%d:\t%s" i (show c)
25 forM_ (methods cls) $ \m -> do
27 B.putStr (methodName m)
28 print (methodSignature m)
29 case attrByName m "Code" of
30 Nothing -> putStrLn "(no code)\n"
31 Just bytecode -> let code = decodeMethod bytecode
32 in forM_ (codeInstructions code) $ \i -> do
36 _ -> error "Synopsis: dump-class File.class"