mirror of
https://github.com/golang/go
synced 2024-11-23 00:30:07 -07:00
in traceback, handle the case where we've called through a nil function pointer
R=rsc DELTA=7 (7 added, 0 deleted, 0 changed) OCL=18372 CL=18372
This commit is contained in:
parent
250ec1665a
commit
63f38d62ac
@ -25,6 +25,13 @@ traceback(uint8 *pc, uint8 *sp, void* r15)
|
|||||||
// store local copy of per-process data block that we can write as we unwind
|
// store local copy of per-process data block that we can write as we unwind
|
||||||
mcpy((byte*)&g, (byte*)r15, sizeof(G));
|
mcpy((byte*)&g, (byte*)r15, sizeof(G));
|
||||||
|
|
||||||
|
// if the PC is zero, it's probably due to a nil function pointer.
|
||||||
|
// pop the failed frame.
|
||||||
|
if(pc == nil) {
|
||||||
|
pc = ((uint8**)sp)[0];
|
||||||
|
sp += 8;
|
||||||
|
}
|
||||||
|
|
||||||
counter = 0;
|
counter = 0;
|
||||||
name = "panic";
|
name = "panic";
|
||||||
for(;;){
|
for(;;){
|
||||||
|
Loading…
Reference in New Issue
Block a user