public static void validateEncode(
      byte[] info, DexFile file, CstMethodRef ref, DalvCode code, boolean isStatic) {
    PositionList pl = code.getPositions();
    LocalList ll = code.getLocals();
    DalvInsnList insns = code.getInsns();
    int codeSize = insns.codeSize();
    int countRegisters = insns.getRegistersSize();

    try {
      validateEncode0(info, codeSize, countRegisters, isStatic, ref, file, pl, ll);
    } catch (RuntimeException ex) {
      System.err.println("instructions:");
      insns.debugPrint(System.err, "  ", true);
      System.err.println("local list:");
      ll.debugPrint(System.err, "  ");
      throw ExceptionWithContext.withContext(ex, "while processing " + ref.toHuman());
    }
  }
Validates an encoded debug info stream against data used to encode it, throwing an exception if
they do not match. Used to validate the encoder.

@param info encoded debug info
@param file {@code non-null;} file to refer to during decoding
@param ref {@code non-null;} method whose info is being decoded
@param code {@code non-null;} original code object that was encoded
@param isStatic whether the method is static
android/android_framework/dex-maker/src/main/java/com/android/dx/dex/file/DebugInfoDecoder.java