/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue34123.go
43 строки
735 B
Keith Randall
runtime: fix line number for faulting instructions
09 ноя 2019, 00:05
09 ноя 2019, 00:05
9ee6ba0
Код
Авторство
О чём код?
// run // Copyright 2019 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. // Make sure that the line number is reported correctly // for faulting instructions. package main import ( "fmt" "runtime" ) var x byte var p *byte //go:noinline func f() { q := p x = 11 // line 23 *q = 12 // line 24 } func main() { defer func() { recover() var pcs [10]uintptr n := runtime.Callers(1, pcs[:]) frames := runtime.CallersFrames(pcs[:n]) for { f, more := frames.Next() if f.Function == "main.f" && f.Line != 24 { panic(fmt.Errorf("expected line 24, got line %d", f.Line)) } if !more { break } } }() f() }