--- /dev/null
+=head1 NAME
+
+state_analyzer - Explores and queries the fileserver state database interactively
+
+=head1 SYNOPSIS
+
+=for html
+<div class="synopsis">
+
+B<state_analyzer> S<<< <F<state dump file>> | B<-h> >>>
+
+=for html
+</div>
+
+=head1 DESCRIPTION
+
+Demand-attach file server makes host / callback information
+persistent. On shutdown, the state is saved to database L<fsstate.dat(5)>.
+On startup, the state is read, verified and restored.
+This allows for file server shutdowns or restarts without breaking
+the callbacks (an operation that could otherwise take a long time).
+
+B<state_analyzer> interactively explores and queries the saved
+state database, L<fsstate.dat(5)>.
+
+This command is only supported on the demand-attach file server.
+It operates at an extremely low-level and hence requires detailed
+knowledge of the OpenAFS architecture and code.
+
+=head1 COMMANDS
+
+B<state_analyzer> supports the following interactive commands:
+
+=over 4
+
+
+=item B<h <...>> -- host menu
+
+=over 4
+
+=item *
+
+B<hdr> -- display the host_state_header struct
+
+=item *
+
+B<first> -- display the first host
+
+=item *
+
+B<prev> -- display the previous host
+
+=item *
+
+B<this> -- display this host
+
+=item *
+
+B<next> -- display the next host
+
+=item *
+
+B<last> -- display the last host
+
+=item *
+
+B<dump> -- display all hosts
+
+=back
+
+
+=item B<fe <...>> -- FileEntry menu
+
+=over 4
+
+=item *
+
+B<hdr> -- display the callback_state_header struct
+
+=item *
+
+B<first> -- display the first FE
+
+=item *
+
+B<prev> -- display the previous FE
+
+=item *
+
+B<this> -- display this FE
+
+=item *
+
+B<next> -- display the next FE
+
+=item *
+
+B<last> -- display the last FE
+
+=item *
+
+B<dump> -- display all FEs
+
+=item *
+
+B<timeout> -- display the timeout queue heads
+
+=item *
+
+B<hash> -- display the file entry hash buckets
+
+=item *
+
+B<find by index I<id>> -- find an fe by its array index
+
+=item *
+
+B<find by fid I<(vol,vnode,unique)>> -- find an fe by its AFSFid
+
+=back
+
+
+=item B<cb <...>> -- CallBack menu
+
+=over 4
+
+=item *
+
+B<hdr> -- display the callback_state_entry_header struct
+
+=item *
+
+B<first> -- display the first CB
+
+=item *
+
+B<prev> -- display the previous CB
+
+=item *
+
+B<this> -- display this CB
+
+=item *
+
+B<next> -- display the next CB
+
+=item *
+
+B<last> -- display the last CB
+
+=item *
+
+B<dump> -- display all CBs
+
+=back
+
+=item B<hexdump [B<offset> [B<len>]]> -- hex dump raw data
+
+=item B<quit> -- quit current menu
+
+=item B<exit> -- exit debugger
+
+=item B<help> -- help message
+
+=back
+
+=head1 PRIVILEGE REQUIRED
+
+The issuer must have read access to the file server state database,
+F<fsstate.dat>.
+Usually, this means that the issuer must be the
+local superuser C<root> on the file server machine.
+
+=head1 SEE ALSO
+
+L<fsstate.dat(5)>,
+L<fssync-debug(8)>,
+L<salvsync-debug(8)>
+
+=head1 COPYRIGHT
+
+Copyright 2010 Davor Ocelic <docelic@spinlocksolutions.com>
+
+This documentation is covered by the IBM Public License Version 1.0. This
+man page was written by Davor Ocelic for OpenAFS, based on documentation
+from Tom Keiser, Steven Jenkins and others.