From a5433369aa6c1b0ca2380d34fd99b41529a613fe Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 25 Nov 2008 09:23:36 -0800 Subject: use pc/ln table to print source lines in traceback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/runtime/runtime.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/runtime/runtime.h') 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, -- cgit v1.3-5-g9baa