| // Copyright 2014 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| // The godex command prints (dumps) exported information of packages | |
| // or selected package objects. | |
| // | |
| // In contrast to godoc, godex extracts this information from compiled | |
| // object files. Hence the exported data is truly what a compiler will | |
| // see, at the cost of missing commentary. | |
| // | |
| // Usage: godex [flags] {path[.name]} | |
| // | |
| // Each argument must be a (possibly partial) package path, optionally | |
| // followed by a dot and the name of a package object: | |
| // | |
| // godex math | |
| // godex math.Sin | |
| // godex math.Sin fmt.Printf | |
| // godex go/types | |
| // | |
| // godex automatically tries all possible package path prefixes if only a | |
| // partial package path is given. For instance, for the path "go/types", | |
| // godex prepends "golang.org/x/tools". | |
| // | |
| // The prefixes are computed by searching the directories specified by | |
| // the GOROOT and GOPATH environment variables (and by excluding the | |
| // build OS- and architecture-specific directory names from the path). | |
| // The search order is depth-first and alphabetic; for a partial path | |
| // "foo", a package "a/foo" is found before "b/foo". | |
| // | |
| // Absolute and relative paths may be provided, which disable automatic | |
| // prefix generation: | |
| // | |
| // godex $GOROOT/pkg/darwin_amd64/sort | |
| // godex ./sort | |
| // | |
| // All but the last path element may contain dots; a dot in the last path | |
| // element separates the package path from the package object name. If the | |
| // last path element contains a dot, terminate the argument with another | |
| // dot (indicating an empty object name). For instance, the path for a | |
| // package foo.bar would be specified as in: | |
| // | |
| // godex foo.bar. | |
| // | |
| // The flags are: | |
| // | |
| // -s="" | |
| // only consider packages from src, where src is one of the supported compilers | |
| // -v=false | |
| // verbose mode | |
| // | |
| // The following sources (-s arguments) are supported: | |
| // | |
| // gc | |
| // gc-generated object files | |
| // gccgo | |
| // gccgo-generated object files | |
| // gccgo-new | |
| // gccgo-generated object files using a condensed format (experimental) | |
| // source | |
| // (uncompiled) source code (not yet implemented) | |
| // | |
| // If no -s argument is provided, godex will try to find a matching source. | |
| package main // import "golang.org/x/tools/cmd/godex" | |
| // BUG(gri): support for -s=source is not yet implemented | |
| // BUG(gri): gccgo-importing appears to have occasional problems stalling godex; try -s=gc as work-around |