diff options
| author | Rob Pike <r@golang.org> | 2008-09-12 09:44:41 -0700 |
|---|---|---|
| committer | Rob Pike <r@golang.org> | 2008-09-12 09:44:41 -0700 |
| commit | 6e8dbc2051ab5face6278e4056eefd5aea6c329b (patch) | |
| tree | 93eeb9ec4ccb53ef9685d3f689f7fb97c3654050 /src/runtime/runtime.c | |
| parent | 96b906498abad3eea2d6ea7e401917ec431bef83 (diff) | |
| download | go-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.c | 4 |
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); } |
