diff options
Diffstat (limited to 'src/debug')
| -rw-r--r-- | src/debug/gosym/pclntab.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/debug/gosym/pclntab.go b/src/debug/gosym/pclntab.go index e859d5aed5..e94ed19d7d 100644 --- a/src/debug/gosym/pclntab.go +++ b/src/debug/gosym/pclntab.go @@ -291,13 +291,17 @@ func (t *LineTable) step(p *[]byte, pc *uint64, val *int32, first bool) bool { return true } +// PCValue looks up the given PC in a pc value table. target is the +// offset of the pc from the entry point. +func PCValue(tab []byte, target uint64, quantum int) int { + t := LineTable{Data: tab, quantum: uint32(quantum)} + return int(t.pcvalue(0, 0, target)) +} + // pcvalue reports the value associated with the target pc. // off is the offset to the beginning of the pc-value table, // and entry is the start PC for the corresponding function. func (t *LineTable) pcvalue(off uint32, entry, targetpc uint64) int32 { - if off == 0 { - return -1 - } p := t.Data[off:] val := int32(-1) |
