1
0
mirror of https://github.com/golang/go synced 2024-11-19 02:04:42 -07:00
go/test
Russ Cox a22c11b995 runtime: fix line number in first stack frame in printed stack trace
Originally traceback was only used for printing the stack
when an unexpected signal came in. In that case, the
initial PC is taken from the signal and should be used
unaltered. For the callers, the PC is the return address,
which might be on the line after the call; we subtract 1
to get to the CALL instruction.

Traceback is now used for a variety of things, and for
almost all of those the initial PC is a return address,
whether from getcallerpc, or gp->sched.pc, or gp->syscallpc.
In those cases, we need to subtract 1 from this initial PC,
but the traceback code had a hard rule "never subtract 1
from the initial PC", left over from the signal handling days.

Change gentraceback to take a flag that specifies whether
we are tracing a trap.

Change traceback to default to "starting with a return PC",
which is the overwhelmingly common case.

Add tracebacktrap, like traceback but starting with a trap PC.

Use tracebacktrap in signal handlers.

Fixes #7690.

LGTM=iant, r
R=r, iant
CC=golang-codereviews
https://golang.org/cl/167810044
2014-10-29 15:14:24 -04:00
..
bench build: adjustments for move from src/pkg to src 2014-09-08 00:06:45 -04:00
bugs
chan cmd/gc: implement 'for range x {' 2014-07-16 19:27:10 -04:00
ddd2.dir
dwarf
fixedbugs runtime: fix line number in first stack frame in printed stack trace 2014-10-29 15:14:24 -04:00
import2.dir
import4.dir test: match gccgo import error messages 2013-12-12 19:02:11 -08:00
interface cmd/gc: blank methods are not permitted in interface types 2014-10-15 09:55:13 -07:00
ken
method4.dir cmd/gc: do not omit wrapper for expression (interface{...}).F 2014-01-07 13:26:48 +01:00
safe
stress build: adjustments for move from src/pkg to src 2014-09-08 00:06:45 -04:00
syntax test: match gccgo error messages 2013-12-12 17:18:12 -08:00
64bit.go
235.go
alias1.go
alias.go
append.go
args.go
assign1.go
assign.go cmd/gc: prohibit short variable declarations containing duplicate symbols 2014-10-06 17:16:39 -04:00
bigalg.go
bigmap.go
blank1.go test: match gccgo error messages for blank1.go 2013-09-28 15:19:05 -07:00
blank.go test: revert changes made for Go SSA interpreter test. 2013-10-08 14:36:20 -04:00
bom.go
bombad.go
bounds.go
chancap.go
char_lit1.go
char_lit.go
closedchan.go
closure.go
cmp6.go cmd/gc: do not consider length zero arrays as comparable. 2014-01-31 00:30:56 +01:00
cmp.go cmd/gc: do not nop-convert equivalent but different interface types. 2014-02-27 08:07:50 +01:00
cmplx.go
cmplxdivide1.go
cmplxdivide.c
cmplxdivide.go
complit1.go
complit.go
compos.go
const1.go test: match gccgo error messages 2013-12-12 17:18:12 -08:00
const2.go
const3.go
const4.go
const5.go cmd/gc: reject builtin function calls in len(fixed array) constants 2014-04-03 19:04:33 -04:00
const6.go
const.go
convert1.go
convert3.go
convert.go
convlit1.go
convlit.go
convT2X.go
copy.go
crlf.go
ddd1.go
ddd2.go
ddd.go
decl.go
declbad.go
defer.go
deferfin.go runtime: combine small NoScan allocations 2014-01-24 22:35:11 +04:00
deferprint.go
deferprint.out
divide.go
divmod.go all: fix a few spelling errors in source comments 2013-12-27 08:59:02 -08:00
empty.go
env.go
eof1.go
eof.go
errchk
escape2.go cmd/gc: run escape analysis always (even in -N mode) 2014-09-24 15:20:03 -04:00
escape2n.go cmd/gc: run escape analysis always (even in -N mode) 2014-09-24 15:20:03 -04:00
escape3.go
escape4.go
escape5.go cmd/gc: distinguish unnamed vs blank-named return variables better 2014-02-13 20:59:39 -05:00
escape.go
float_lit2.go test: fix two typos in float_lit2.go 2014-05-21 17:19:12 -04:00
float_lit3.go test/float_lit2.go: rewrite to test values near boundaries 2014-05-21 17:12:06 -04:00
float_lit.go
floatcmp.go
for.go
func1.go
func2.go
func3.go
func4.go
func5.go
func6.go
func7.go
func8.go
func.go
funcdup2.go test: match gccgo error messages 2013-12-12 17:18:12 -08:00
funcdup.go test: match gccgo error messages 2013-12-12 17:18:12 -08:00
gc1.go
gc2.go build: make nacl pass 2014-05-20 12:10:19 -04:00
gc.go
gcstring.go runtime: fix empty string handling in garbage collector 2014-03-11 23:58:39 -04:00
golden.out
goprint.go
goprint.out
goto.go
helloworld.go
helloworld.out
if.go
import1.go test: match gccgo import error messages 2013-12-12 19:02:11 -08:00
import2.go
import4.go
import5.go
import.go
index0.go
index1.go
index2.go
index.go test: recognize gccgo error message in index.go 2013-09-27 20:38:52 -07:00
indirect1.go
indirect.go
init1.go
init.go
initcomma.go
initialize.go
initializerr.go
int_lit.go
intcvt.go
iota.go
label1.go
label.go
linkx.go cmd/ld: don't automatically mark symbols created by -X as reachable 2014-09-28 08:27:05 -07:00
literal.go
live1.go cmd/gc: correct liveness for fat variables 2014-02-15 10:58:55 -05:00
live2.go cmd/gc: fix call order in array literal of slice literal of make chan 2014-09-30 12:48:47 -04:00
live.go cmd/gc: fix call order in array literal of slice literal of make chan 2014-09-30 12:48:47 -04:00
mallocfin.go
map1.go
map.go test/mapnan.go: add regression test for non-empty interfaces. 2014-08-06 17:02:55 -04:00
maplinear.go test: make maplinear more robust 2014-10-27 18:59:02 -04:00
method1.go
method2.go
method3.go
method4.go
method5.go
method.go
named1.go cmd/gc: comma-ok assignments produce untyped bool as 2nd result 2014-08-11 16:11:55 -07:00
named.go
nil.go
nilcheck.go
nilptr2.go test: revert changes made for Go SSA interpreter test. 2013-10-08 14:36:20 -04:00
nilptr3.go cmd/gc: correct handling of globals, func args, results 2014-05-15 15:34:53 -04:00
nilptr4.go cmd/gc: fix bad checknil with ints on 32 bit compilers 2014-02-26 12:25:13 -08:00
nilptr.go
nosplit.go liblink: make GO_ARGS the default for functions beginning with · 2014-09-16 17:39:55 -04:00
nul1.go
parentype.go
peano.go
print.go runtime: move built-in print routines to go. 2014-07-31 13:48:48 -07:00
print.out runtime: move built-in print routines to go. 2014-07-31 13:48:48 -07:00
printbig.go
printbig.out
range.go cmd/gc: implement 'for range x {' 2014-07-16 19:27:10 -04:00
recover1.go
recover2.go
recover3.go
recover.go test: add more cases to recover.go 2014-10-22 08:06:15 -07:00
rename1.go
rename.go
reorder2.go cmd/gc: shorten temporary lifetimes when possible 2014-04-01 13:31:38 -04:00
reorder.go
return.go
rotate0.go
rotate1.go
rotate2.go
rotate3.go
rotate.go
run test/run: add /usr/pkg/bin to PATH. 2014-03-03 02:16:15 -05:00
run.go test: return errors earlier in run.go 2014-09-11 12:47:17 -07:00
rune.go
runtime.go
shift1.go test: avoid "declared but not used" errors in shift1.go 2014-07-20 12:25:24 -07:00
shift2.go
sieve.go
sigchld.go test: skip SIGCHLD test on Plan 9 2014-01-29 09:28:23 +01:00
sigchld.out
simassign.go
sinit.go
sizeof.go
slice3.go cmd/gc, runtime: treat slices and strings like pointers in garbage collection 2014-08-25 14:38:19 -04:00
slice3err.go test: match gccgo error messages 2013-12-12 17:18:12 -08:00
slicecap.go cmd/gc, runtime: treat slices and strings like pointers in garbage collection 2014-08-25 14:38:19 -04:00
solitaire.go
stack.go
string_lit.go test: add []rune case to string_lit.go 2013-12-12 17:17:02 -08:00
stringrange.go
struct0.go
switch3.go
switch4.go
switch.go
testlib
tinyfin.go runtime: combine small NoScan allocations 2014-01-24 22:35:11 +04:00
torture.go cmd/8g: don't allocate a register early for cap(CHAN). 2014-07-01 09:20:51 +02:00
turing.go
typecheck.go cmd/gc: silence assignment errors to undefined symbols 2014-01-03 21:03:20 +01:00
typeswitch1.go
typeswitch2.go
typeswitch3.go
typeswitch.go
undef.go
utf.go
varerr.go
varinit.go
zerodivide.go