Dump displays the passed parameters to standard out with newlines, customizable indentation, and additional debug information such as complete types and all pointer addresses used to indirect to the final value. It provides the following features over the built-in printing facilities provided by the fmt package:

* Pointers are dereferenced and followed
* Circular data structures are detected and handled properly
* Custom Stringer/error interfaces are optionally invoked, including
  on unexported types
* Custom types which only implement the Stringer/error interfaces via
  a pointer receiver are optionally invoked when passing non-pointer
* Byte arrays and slices are dumped like the hexdump -C command which
  includes offsets, byte values in hex, and ASCII output

The configuration options are controlled by modifying the public members of c. See ConfigState for options documentation.

See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to get the formatted result as a string.