aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/runtime.h
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2008-11-25 09:23:36 -0800
committerRuss Cox <rsc@golang.org>2008-11-25 09:23:36 -0800
commita5433369aa6c1b0ca2380d34fd99b41529a613fe (patch)
treebf560d5844b4a60303cd6a986382ceb9ccc0a111 /src/runtime/runtime.h
parentafff0ff1b8442e9032266c392773a633604ff18c (diff)
downloadgo-a5433369aa6c1b0ca2380d34fd99b41529a613fe.tar.xz
use pc/ln table to print source lines in traceback
r45=; 6.out oops panic PC=0x400316 0x400316?zi /home/rsc/go/src/runtime/rt0_amd64_linux.s:83 main·g(4195177, 0, 4205661, ...) main·g(0x400369, 0x402c5d, 0x403e49, ...) 0x40034c?zi /home/rsc/go/src/runtime/x.go:24 main·f(4205661, 0, 4210249, ...) main·f(0x402c5d, 0x403e49, 0x1, ...) 0x400368?zi /home/rsc/go/src/runtime/x.go:37 main·main(4210249, 0, 1, ...) main·main(0x403e49, 0x1, 0x7fff9d894bd8, ...) 0x402c5c?zi /home/rsc/go/src/runtime/rt0_amd64.s:70 mainstart(1, 0, 2643020760, ...) mainstart(0x1, 0x7fff9d894bd8, 0x0, ...) r45=; R=r DELTA=251 (198 added, 25 deleted, 28 changed) OCL=19965 CL=19979
Diffstat (limited to 'src/runtime/runtime.h')
-rw-r--r--src/runtime/runtime.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
index 7ec9c7d9bb..409228d73f 100644
--- a/src/runtime/runtime.h
+++ b/src/runtime/runtime.h
@@ -189,9 +189,13 @@ struct SigTab
struct Func
{
string name;
- string type;
- uint64 entry;
- int64 frame;
+ string type; // go type string
+ string src; // src file name
+ uint64 entry; // entry pc
+ int64 frame; // stack frame size
+ Array pcln; // pc/ln tab for this func
+ int64 pc0; // starting pc, ln for table
+ int32 ln0;
};
/*
@@ -261,6 +265,7 @@ void signalstack(byte*, int32);
G* malg(int32);
void minit(void);
Func* findfunc(uint64);
+int32 funcline(Func*, uint64);
/*
* mutual exclusion locks. in the uncontended case,