]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix traceback of trap on ARM
authorRuss Cox <rsc@golang.org>
Sun, 14 Sep 2014 20:39:08 +0000 (20:39 +0000)
committerRuss Cox <rsc@golang.org>
Sun, 14 Sep 2014 20:39:08 +0000 (20:39 +0000)
The merged traceback was wrong for LR machines,
because traceback didn't pass lr to gentraceback.
Now that we have a test looking at traceback output
for a trap (the test of runtime.Breakpoint),
we caught this.

While we're here, fix a 'set and not used' warning.

Fixes arm build.

TBR=r
R=r
CC=golang-codereviews
https://golang.org/cl/143040043

src/runtime/mgc0.c
src/runtime/traceback.go

index c976b09c36c8ffb81ee783d9e8624b63e51c83a0..30a8ea2c9c812cb11dfbda3c848a4676ed14a80e 100644 (file)
@@ -634,9 +634,10 @@ scanframe(Stkframe *frame, void *unused)
 
        // Scan local variables if stack frame has been allocated.
        size = frame->varp - frame->sp;
-       minsize = 0;
        if(thechar != '6' && thechar != '8')
                minsize = sizeof(uintptr);
+       else
+               minsize = 0;
        if(size > minsize) {
                stackmap = runtime·funcdata(f, FUNCDATA_LocalsPointerMaps);
                if(stackmap == nil || stackmap->n <= 0) {
index eaf54db319bd89fd45ff4828932d1009fa7d8674..07b68d29b5b5dd3a75ef8fd9717a309b844ef575 100644 (file)
@@ -451,9 +451,9 @@ func traceback(pc uintptr, sp uintptr, lr uintptr, gp *g) {
        }
        // Print traceback. By default, omits runtime frames.
        // If that means we print nothing at all, repeat forcing all frames printed.
-       n = gentraceback(pc, sp, 0, gp, 0, nil, _TracebackMaxFrames, nil, nil, false)
+       n = gentraceback(pc, sp, lr, gp, 0, nil, _TracebackMaxFrames, nil, nil, false)
        if n == 0 {
-               n = gentraceback(pc, sp, 0, gp, 0, nil, _TracebackMaxFrames, nil, nil, true)
+               n = gentraceback(pc, sp, lr, gp, 0, nil, _TracebackMaxFrames, nil, nil, true)
        }
        if n == _TracebackMaxFrames {
                print("...additional frames elided...\n")