• Lynn Boger's avatar
    runtime: fix runtime-gdb.py when switching sp value · 048988a0
    Lynn Boger authored
    After a recent change to runtime-gdb_test.go the ppc64le builder
    has had intermittent failures. The failures occur when trying to
    invoke the goroutineCmd function to display the backtrace for
    a selected goroutine. There is nothing wrong with the testcase
    but it seems to intermittently leave goroutines in a state
    where an error can occur.
    
    The error message indicates that the problem occurs when trying
    to change the sp back to the original after displaying the
    stacktrace for the goroutine.
    
    gdb.error: Attempt to assign to an unmodifiable value.
    
    After some searching I found that this error message can happen
    if the sp register is changed when on a frame that is not the
    top-most frame. To fix the problem, frame 0 is selected before
    changing the value of sp. This fixes the problem in my
    reproducer environment, and hopefully will fix the problem on
    the builder.
    
    Updates #28679
    
    Change-Id: I329bc95b30f8c95acfb161b0d9cfdcbd917a1954
    Reviewed-on: https://go-review.googlesource.com/c/152540
    Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
    Reviewed-by: 's avatarAustin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    048988a0
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testdata Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...