parameters: (reader, heap)
docstring: Dump all available memory regions.
docstring_summary: Dump all available memory regions.
docstring_tokens: Dump all available memory regions .
function: def FullDump(reader, heap):
    """Dump all available memory regions."""
    def dump_region(reader, start, size, location):
      print()
      while start & 3 != 0:
        start += 1
        size -= 1
        location += 1
      is_executable = reader.IsProbableExecutableRegion(location, size)
      is_ascii = reader.IsProbableASCIIRegion(location, size)
  
      if is_executable is not False:
        lines = reader.GetDisasmLines(start, size)
        for line in lines:
          print(FormatDisasmLine(start, heap, line))
        print()
  
      if is_ascii is not False:
        # Output in the same format as the Unix hd command
        addr = start
        for i in range(0, size, 16):
          slot = i + location
          hex_line = ""
          asc_line = ""
          for i in range(16):
            if slot + i < location + size:
              byte = ctypes.c_uint8.from_buffer(reader.minidump, slot + i).value
              if byte >= 0x20 and byte < 0x7f:
                asc_line += chr(byte)
              else:
                asc_line += "."
              hex_line += " %02x" % (byte)
            else:
              hex_line += "   "
            if i == 7:
              hex_line += " "
          print("%s  %s |%s|" % (reader.FormatIntPtr(addr),
                                 hex_line,
                                 asc_line))
          addr += 16
  
      if is_executable is not True and is_ascii is not True:
        print("%s - %s" % (reader.FormatIntPtr(start),
                           reader.FormatIntPtr(start + size)))
        print(start + size + 1);
        for i in range(0, size, reader.PointerSize()):
          slot = start + i
          maybe_address = reader.ReadUIntPtr(slot)
          heap_object = heap.FindObject(maybe_address)
          print("%s: %s" % (reader.FormatIntPtr(slot),
                            reader.FormatIntPtr(maybe_address)))
          if heap_object:
            heap_object.Print(Printer())
            print()
  
    reader.ForEachMemoryRegion(dump_region)
function_tokens: def FullDump ( reader , heap ) : def dump_region ( reader , start , size , location ) : print ( ) while start & 3 != 0 : start += 1 size -= 1 location += 1 is_executable = reader . IsProbableExecutableRegion ( location , size ) is_ascii = reader . IsProbableASCIIRegion ( location , size ) if is_executable is not False : lines = reader . GetDisasmLines ( start , size ) for line in lines : print ( FormatDisasmLine ( start , heap , line ) ) print ( ) if is_ascii is not False : # Output in the same format as the Unix hd command addr = start for i in range ( 0 , size , 16 ) : slot = i + location hex_line = "" asc_line = "" for i in range ( 16 ) : if slot + i < location + size : byte = ctypes . c_uint8 . from_buffer ( reader . minidump , slot + i ) . value if byte >= 0x20 and byte < 0x7f : asc_line += chr ( byte ) else : asc_line += "." hex_line += " %02x" % ( byte ) else : hex_line += "   " if i == 7 : hex_line += " " print ( "%s  %s |%s|" % ( reader . FormatIntPtr ( addr ) , hex_line , asc_line ) ) addr += 16 if is_executable is not True and is_ascii is not True : print ( "%s - %s" % ( reader . FormatIntPtr ( start ) , reader . FormatIntPtr ( start + size ) ) ) print ( start + size + 1 ) for i in range ( 0 , size , reader . PointerSize ( ) ) : slot = start + i maybe_address = reader . ReadUIntPtr ( slot ) heap_object = heap . FindObject ( maybe_address ) print ( "%s: %s" % ( reader . FormatIntPtr ( slot ) , reader . FormatIntPtr ( maybe_address ) ) ) if heap_object : heap_object . Print ( Printer ( ) ) print ( ) reader . ForEachMemoryRegion ( dump_region )