]> Cypherpunks repositories - gostls13.git/commitdiff
debug/goobj: add String methods for SymID and SymKind
authorRuss Cox <rsc@golang.org>
Thu, 9 Jan 2014 01:37:41 +0000 (20:37 -0500)
committerRuss Cox <rsc@golang.org>
Thu, 9 Jan 2014 01:37:41 +0000 (20:37 -0500)
R=iant
CC=golang-codereviews
https://golang.org/cl/48890044

src/pkg/debug/goobj/read.go

index 3338c411dc3f8ea59e600aa0481bcc418cdd2fd0..f65abb6c27399e253c0612dd16c80c6a9a9a9b14 100644 (file)
@@ -72,6 +72,49 @@ const (
        SHOSTOBJ
 )
 
+var symKindStrings = []string{
+       SBSS:              "SBSS",
+       SCONST:            "SCONST",
+       SDATA:             "SDATA",
+       SDYNIMPORT:        "SDYNIMPORT",
+       SELFROSECT:        "SELFROSECT",
+       SELFRXSECT:        "SELFRXSECT",
+       SELFSECT:          "SELFSECT",
+       SFILE:             "SFILE",
+       SFILEPATH:         "SFILEPATH",
+       SFUNCTAB:          "SFUNCTAB",
+       SGOFUNC:           "SGOFUNC",
+       SGOSTRING:         "SGOSTRING",
+       SHOSTOBJ:          "SHOSTOBJ",
+       SINITARR:          "SINITARR",
+       SMACHO:            "SMACHO",
+       SMACHOGOT:         "SMACHOGOT",
+       SMACHOINDIRECTGOT: "SMACHOINDIRECTGOT",
+       SMACHOINDIRECTPLT: "SMACHOINDIRECTPLT",
+       SMACHOPLT:         "SMACHOPLT",
+       SMACHOSYMSTR:      "SMACHOSYMSTR",
+       SMACHOSYMTAB:      "SMACHOSYMTAB",
+       SNOPTRBSS:         "SNOPTRBSS",
+       SNOPTRDATA:        "SNOPTRDATA",
+       SPCLNTAB:          "SPCLNTAB",
+       SRODATA:           "SRODATA",
+       SSTRING:           "SSTRING",
+       SSYMTAB:           "SSYMTAB",
+       STEXT:             "STEXT",
+       STLSBSS:           "STLSBSS",
+       STYPE:             "STYPE",
+       STYPELINK:         "STYPELINK",
+       SWINDOWS:          "SWINDOWS",
+       SXREF:             "SXREF",
+}
+
+func (k SymKind) String() string {
+       if k < 0 || int(k) >= len(symKindStrings) {
+               return fmt.Sprintf("SymKind(%d)", k)
+       }
+       return symKindStrings[k]
+}
+
 // A Sym is a named symbol in an object file.
 type Sym struct {
        SymID         // symbol identifier (name and version)
@@ -98,6 +141,13 @@ type SymID struct {
        Version int
 }
 
+func (s SymID) String() string {
+       if s.Version == 0 {
+               return s.Name
+       }
+       return fmt.Sprintf("%s<%d>", s.Name, s.Version)
+}
+
 // A Data is a reference to data stored in an object file.
 // It records the offset and size of the data, so that a client can
 // read the data only if necessary.