aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/runtime.c
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2008-09-12 09:44:41 -0700
committerRob Pike <r@golang.org>2008-09-12 09:44:41 -0700
commit6e8dbc2051ab5face6278e4056eefd5aea6c329b (patch)
tree93eeb9ec4ccb53ef9685d3f689f7fb97c3654050 /src/runtime/runtime.c
parent96b906498abad3eea2d6ea7e401917ec431bef83 (diff)
downloadgo-6e8dbc2051ab5face6278e4056eefd5aea6c329b.tar.xz
- catch trace traps
- disassemble the instructions in a trace trap to see if it's a run-time trap - if so, print relevant info - avoid double-printing traceback on panic R=ken,rsc DELTA=66 (50 added, 7 deleted, 9 changed) OCL=15199 CL=15224
Diffstat (limited to 'src/runtime/runtime.c')
-rw-r--r--src/runtime/runtime.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/runtime/runtime.c b/src/runtime/runtime.c
index 973fb5bd3c..26becc52a5 100644
--- a/src/runtime/runtime.c
+++ b/src/runtime/runtime.c
@@ -5,6 +5,7 @@
#include "runtime.h"
int32 debug = 0;
+int32 panicking = 0;
void
sys·panicl(int32 lno)
@@ -19,7 +20,8 @@ sys·panicl(int32 lno)
sp = (uint8*)&lno;
traceback(sys·getcallerpc(&lno), sp, g);
tracebackothers(g);
- sys·breakpoint();
+ panicking = 1;
+ sys·breakpoint(); // so we can grab it in a debugger
sys·exit(2);
}