aboutsummaryrefslogtreecommitdiff
path: root/src/debug/dwarf
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug/dwarf')
-rw-r--r--src/debug/dwarf/entry.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/debug/dwarf/entry.go b/src/debug/dwarf/entry.go
index 760ddec5a4..1915d78dc9 100644
--- a/src/debug/dwarf/entry.go
+++ b/src/debug/dwarf/entry.go
@@ -335,9 +335,18 @@ func (i Class) GoString() string {
// v, ok := e.Val(AttrSibling).(int64)
//
func (e *Entry) Val(a Attr) interface{} {
- for _, f := range e.Field {
+ if f := e.AttrField(a); f != nil {
+ return f.Val
+ }
+ return nil
+}
+
+// AttrField returns the Field associated with attribute Attr in
+// Entry, or nil if there is no such attribute.
+func (e *Entry) AttrField(a Attr) *Field {
+ for i, f := range e.Field {
if f.Attr == a {
- return f.Val
+ return &e.Field[i]
}
}
return nil