- 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
diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
index c64e5b3..11d3fda 100644
--- a/src/runtime/runtime.h
+++ b/src/runtime/runtime.h
@@ -207,6 +207,7 @@
G* allg;
int32 goidgen;
extern int32 gomaxprocs;
+extern int32 panicking;
/*
* common functions and data
@@ -236,6 +237,7 @@
void initsig(void);
void traceback(uint8 *pc, uint8 *sp, G* gp);
void tracebackothers(G*);
+int32 inlinetrap(int32 sig, byte* pc);
int32 open(byte*, int32, ...);
int32 read(int32, void*, int32);
int32 write(int32, void*, int32);