oracle(1) a tool for answering questions about Go source code


oracle [ flag ... ] mode args ...


The -format flag controls the output format:

      plain     an editor-friendly format in which every line of output
                is of the form "pos: text", where pos is "-" if unknown.
      json      structured data in JSON syntax.
      xml               structured data in XML syntax.

The -pos flag is required in all modes except 'callgraph'.

The mode argument determines the query to perform:

      callees           show possible targets of selected function call
      callers           show possible callers of selected function
      callgraph         show complete callgraph of program
      callstack         show path from callgraph root to selected function
      describe          describe selected syntax: definition, methods, etc
      freevars          show free variables of selection
      implements        show 'implements' relation for selected package
      peers             show send/receive corresponding to selected channel op
      referrers         show all refs to entity denoted by selected identifier

The user manual is available here:


write cpu profile to file
Output format. One of {plain,json,xml}.
Filename and byte offset or extent of a syntax element about which to query, e.g. foo.go:#123,#456, bar.go:#123.
Location of the points-to analysis log file, or empty to disable logging.
Analyze reflection soundly (slow).


Describe the syntax at offset 530 in this file (an import spec):

      oracle -pos=src/ describe

Print the callgraph of the trivial web-server in JSON format:

      oracle -format=json src/pkg/net/http/triv.go callgraph


This manual page was written by Michael Stapelberg <[email protected]>, for the Debian project (and may be used by others).