diff options
| author | Russ Cox <rsc@golang.org> | 2008-09-22 13:47:53 -0700 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2008-09-22 13:47:53 -0700 |
| commit | fb40f88c409da18ee69a7450e1b8f9528f3538ee (patch) | |
| tree | 16f93a9986c6fac7718d41bba86a8f804655457d /src/runtime/rt1_amd64_linux.c | |
| parent | a27e61e2fe3e32fa629c2e07b4e9c70ba8c3d13a (diff) | |
| download | go-fb40f88c409da18ee69a7450e1b8f9528f3538ee.tar.xz | |
test cleanup
- do not print tracebacks if $GOTRACEBACK=0
- set GOTRACEBACK=0 during tests
- filter out pc numbers in errors
R=r
DELTA=70 (22 added, 30 deleted, 18 changed)
OCL=15618
CL=15642
Diffstat (limited to 'src/runtime/rt1_amd64_linux.c')
| -rw-r--r-- | src/runtime/rt1_amd64_linux.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/runtime/rt1_amd64_linux.c b/src/runtime/rt1_amd64_linux.c index c62db5ce95..98a53f18e8 100644 --- a/src/runtime/rt1_amd64_linux.c +++ b/src/runtime/rt1_amd64_linux.c @@ -140,7 +140,7 @@ sighandler(int32 sig, siginfo* info, void** context) if(panicking) // traceback already printed sys·exit(2); - struct sigcontext *sc = &(((struct ucontext *)context)->uc_mcontext); + struct sigcontext *sc = &(((struct ucontext *)context)->uc_mcontext); if(sig < 0 || sig >= NSIG){ prints("Signal "); @@ -149,13 +149,15 @@ sighandler(int32 sig, siginfo* info, void** context) prints(sigtab[sig].name); } - prints("\nFaulting address: 0x"); sys·printpointer(info->si_addr); - prints("\npc: 0x"); sys·printpointer((void *)sc->rip); - prints("\n\n"); + prints("\nFaulting address: 0x"); sys·printpointer(info->si_addr); + prints("\npc: 0x"); sys·printpointer((void *)sc->rip); + prints("\n\n"); - traceback((void *)sc->rip, (void *)sc->rsp, (void *)sc->r15); - tracebackothers((void*)sc->r15); - print_sigcontext(sc); + if(gotraceback()){ + traceback((void *)sc->rip, (void *)sc->rsp, (void *)sc->r15); + tracebackothers((void*)sc->r15); + print_sigcontext(sc); + } sys·breakpoint(); sys·exit(2); |
