Class BlockDumper

java.lang.Object
com.android.dx.command.dump.BaseDumper
com.android.dx.command.dump.BlockDumper
All Implemented Interfaces:
ParseObserver
Direct Known Subclasses:
SsaDumper

public class BlockDumper extends BaseDumper
Utility to dump basic block info from methods in a human-friendly form.
  • Field Details

  • Method Details

    • dump

      public static void dump(byte[] bytes, PrintStream out, String filePath, boolean rop, com.android.dx.command.dump.Args args)
      Dumps the given array, interpreting it as a class file and dumping methods with indications of block-level stuff.
      Parameters:
      bytes - non-null; bytes of the (alleged) class file
      out - non-null; where to dump to
      filePath - the file path for the class, excluding any base directory specification
      rop - whether or not to registerize (make rop blocks)
      args - commandline parsedArgs
    • dump

      public void dump()
      Does the dumping.
    • changeIndent

      public void changeIndent(int indentDelta)
      Indicate that the level of indentation for a dump should increase or decrease (positive or negative argument, respectively).
      Specified by:
      changeIndent in interface ParseObserver
      Overrides:
      changeIndent in class BaseDumper
      Parameters:
      indentDelta - the amount to change indentation
    • parsed

      public void parsed(ByteArray bytes, int offset, int len, String human)
      Indicate that some parsing happened.
      Specified by:
      parsed in interface ParseObserver
      Overrides:
      parsed in class BaseDumper
      Parameters:
      bytes - non-null; the source that was parsed
      offset - offset into bytes for what was parsed
      len - number of bytes parsed
      human - non-null; human form for what was parsed
    • shouldDumpMethod

      protected boolean shouldDumpMethod(String name)
      Parameters:
      name - method name
      Returns:
      true if this method should be dumped
    • startParsingMember

      public void startParsingMember(ByteArray bytes, int offset, String name, String descriptor)
      Indicate that a particular member is now being parsed.
      Specified by:
      startParsingMember in interface ParseObserver
      Overrides:
      startParsingMember in class BaseDumper
      Parameters:
      bytes - non-null; the source that is being parsed
      offset - offset into bytes for the start of the member
      name - non-null; name of the member
      descriptor - non-null; descriptor of the member
    • endParsingMember

      public void endParsingMember(ByteArray bytes, int offset, String name, String descriptor, Member member)
      Indicate that a particular member is no longer being parsed.
      Specified by:
      endParsingMember in interface ParseObserver
      Overrides:
      endParsingMember in class BaseDumper
      Parameters:
      bytes - non-null; the source that was parsed
      offset - offset into bytes for the end of the member
      name - non-null; name of the member
      descriptor - non-null; descriptor of the member
      member - non-null; the actual member that was parsed