From 7bb5bb86dc28e8914f992f37f5aae59b770ab8d1 Mon Sep 17 00:00:00 2001 From: "arraykeys@gmail.com" Date: Fri, 14 Sep 2018 11:47:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96crashed=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.go | 6 +++--- core/dst/conn.go | 2 +- core/dst/mux.go | 2 +- core/dst/sendbuffer.go | 2 +- core/lib/mapx/map.go | 12 ++++++------ core/lib/udp/udp.go | 8 ++++---- main.go | 2 +- sdk/android-ios/dns.go | 4 ++-- services/http/http.go | 2 +- services/mux/mux_bridge.go | 6 +++--- services/mux/mux_client.go | 10 +++++----- services/mux/mux_server.go | 12 ++++++------ services/socks/socks.go | 2 +- services/tcp/tcp.go | 6 +++--- services/tunnel/tunnel_client.go | 12 ++++++------ services/tunnel/tunnel_server.go | 6 +++--- services/udp/udp.go | 12 ++++++------ utils/lb/backend.go | 4 ++-- utils/mapx/map.go | 12 ++++++------ utils/structs.go | 4 ++-- 20 files changed, 63 insertions(+), 63 deletions(-) diff --git a/config.go b/config.go index c97ebc7..a8ddb40 100755 --- a/config.go +++ b/config.go @@ -418,7 +418,7 @@ func initConfig() (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for { @@ -442,7 +442,7 @@ func initConfig() (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for scanner.Scan() { @@ -452,7 +452,7 @@ func initConfig() (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for scannerStdErr.Scan() { diff --git a/core/dst/conn.go b/core/dst/conn.go index 4543ec1..e978b75 100644 --- a/core/dst/conn.go +++ b/core/dst/conn.go @@ -137,7 +137,7 @@ func (c *Conn) start() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() c.reader() diff --git a/core/dst/mux.go b/core/dst/mux.go index 967e73c..b548f7b 100644 --- a/core/dst/mux.go +++ b/core/dst/mux.go @@ -82,7 +82,7 @@ func NewMux(conn net.PacketConn, packetSize int) *Mux { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack())) } }() m.readerLoop() diff --git a/core/dst/sendbuffer.go b/core/dst/sendbuffer.go index 5e53f17..65c9a47 100644 --- a/core/dst/sendbuffer.go +++ b/core/dst/sendbuffer.go @@ -56,7 +56,7 @@ func newSendBuffer(m *Mux) *sendBuffer { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack())) } }() b.writerLoop() diff --git a/core/lib/mapx/map.go b/core/lib/mapx/map.go index 651a818..8d25ffb 100644 --- a/core/lib/mapx/map.go +++ b/core/lib/mapx/map.go @@ -155,7 +155,7 @@ func (m ConcurrentMap) Iter() <-chan Tuple { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() fanIn(chans, ch) @@ -174,7 +174,7 @@ func (m ConcurrentMap) IterBuffered() <-chan Tuple { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() fanIn(chans, ch) @@ -195,7 +195,7 @@ func snapshot(m ConcurrentMap) (chans []chan Tuple) { go func(index int, shard *ConcurrentMapShared) { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() // Foreach key, value pair. @@ -221,7 +221,7 @@ func fanIn(chans []chan Tuple, out chan Tuple) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() func(ch chan Tuple) { @@ -274,7 +274,7 @@ func (m ConcurrentMap) Keys() []string { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() // Foreach shard. @@ -284,7 +284,7 @@ func (m ConcurrentMap) Keys() []string { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() func(shard *ConcurrentMapShared) { diff --git a/core/lib/udp/udp.go b/core/lib/udp/udp.go index cf417c5..386ae48 100644 --- a/core/lib/udp/udp.go +++ b/core/lib/udp/udp.go @@ -62,7 +62,7 @@ func (s *IOBinder) AliveWithServeConn(srcAddr string, inTCPConn *net.Conn) *IOBi go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() buf := make([]byte, 1) @@ -75,7 +75,7 @@ func (s *IOBinder) AliveWithServeConn(srcAddr string, inTCPConn *net.Conn) *IOBi go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for { @@ -96,7 +96,7 @@ func (s *IOBinder) AliveWithClientConn(srcAddr string, outTCPConn *net.Conn) *IO go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() buf := make([]byte, 1) @@ -156,7 +156,7 @@ func (s *IOBinder) Run() (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() defer func() { diff --git a/main.go b/main.go index 84345f6..b502e3b 100644 --- a/main.go +++ b/main.go @@ -36,7 +36,7 @@ func Clean(s *services.Service) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for _ = range signalChan { diff --git a/sdk/android-ios/dns.go b/sdk/android-ios/dns.go index 9d74926..c4c7afd 100644 --- a/sdk/android-ios/dns.go +++ b/sdk/android-ios/dns.go @@ -60,7 +60,7 @@ func (s *DNS) InitService() (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for { @@ -142,7 +142,7 @@ func (s *DNS) Start(args interface{}, log *logger.Logger) (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() log.Printf("dns server on udp %s", *s.cfg.Local) diff --git a/services/http/http.go b/services/http/http.go index b079c29..0997f80 100644 --- a/services/http/http.go +++ b/services/http/http.go @@ -183,7 +183,7 @@ func (s *HTTP) InitService() (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() //循环检查ssh网络连通性 diff --git a/services/mux/mux_bridge.go b/services/mux/mux_bridge.go index 4027fc5..37128f4 100644 --- a/services/mux/mux_bridge.go +++ b/services/mux/mux_bridge.go @@ -219,7 +219,7 @@ func (s *MuxBridge) handler(inConn net.Conn) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for { @@ -292,7 +292,7 @@ func (s *MuxBridge) callback(inConn net.Conn, serverID, key string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() io.Copy(stream, inConn) @@ -301,7 +301,7 @@ func (s *MuxBridge) callback(inConn net.Conn, serverID, key string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() io.Copy(inConn, stream) diff --git a/services/mux/mux_client.go b/services/mux/mux_client.go index de445b8..9eb2b9f 100644 --- a/services/mux/mux_client.go +++ b/services/mux/mux_client.go @@ -306,7 +306,7 @@ func (s *MuxClient) UDPRevecive(key, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.log.Printf("udp conn %s connected", ID) @@ -336,7 +336,7 @@ func (s *MuxClient) UDPRevecive(key, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() cui.conn.SetWriteDeadline(time.Now().Add(time.Millisecond * time.Duration(*s.cfg.Timeout))) @@ -355,7 +355,7 @@ func (s *MuxClient) UDPGCDeamon() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() if s.isStop { @@ -414,7 +414,7 @@ func (s *MuxClient) ServeConn(inConn *smux.Stream, localAddr, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() io.Copy(outConn, snappy.NewReader(inConn)) @@ -423,7 +423,7 @@ func (s *MuxClient) ServeConn(inConn *smux.Stream, localAddr, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() io.Copy(snappy.NewWriter(inConn), outConn) diff --git a/services/mux/mux_server.go b/services/mux/mux_server.go index bb511e4..e6faffa 100644 --- a/services/mux/mux_server.go +++ b/services/mux/mux_server.go @@ -293,7 +293,7 @@ func (s *MuxServer) Start(args interface{}, log *logger.Logger) (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() io.Copy(inConn, snappy.NewReader(outConn)) @@ -302,7 +302,7 @@ func (s *MuxServer) Start(args interface{}, log *logger.Logger) (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() io.Copy(snappy.NewWriter(outConn), inConn) @@ -397,7 +397,7 @@ func (s *MuxServer) GetConn(index string) (conn net.Conn, err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for { @@ -457,7 +457,7 @@ func (s *MuxServer) UDPGCDeamon() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() if s.isStop { @@ -536,7 +536,7 @@ func (s *MuxServer) UDPRevecive(key, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.log.Printf("udp conn %s connected", ID) @@ -569,7 +569,7 @@ func (s *MuxServer) UDPRevecive(key, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.sc.UDPListener.WriteToUDP(body, uc.srcAddr) diff --git a/services/socks/socks.go b/services/socks/socks.go index 4845ee9..c5790ea 100644 --- a/services/socks/socks.go +++ b/services/socks/socks.go @@ -191,7 +191,7 @@ func (s *Socks) InitService() (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() //循环检查ssh网络连通性 diff --git a/services/tcp/tcp.go b/services/tcp/tcp.go index b4e3f22..f35b5d2 100644 --- a/services/tcp/tcp.go +++ b/services/tcp/tcp.go @@ -256,7 +256,7 @@ func (s *TCP) UDPRevecive(key string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.log.Printf("udp conn %s connected", key) @@ -286,7 +286,7 @@ func (s *TCP) UDPRevecive(key string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() (*cui.conn).SetWriteDeadline(time.Now().Add(time.Millisecond * time.Duration(*s.cfg.Timeout))) @@ -305,7 +305,7 @@ func (s *TCP) UDPGCDeamon() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() if s.isStop { diff --git a/services/tunnel/tunnel_client.go b/services/tunnel/tunnel_client.go index 9747934..d43f67e 100644 --- a/services/tunnel/tunnel_client.go +++ b/services/tunnel/tunnel_client.go @@ -159,7 +159,7 @@ func (s *TunnelClient) Start(args interface{}, log *logger.Logger) (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.ServeUDP(localAddr, ID, serverID) @@ -168,7 +168,7 @@ func (s *TunnelClient) Start(args interface{}, log *logger.Logger) (err error) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.ServeConn(localAddr, ID, serverID) @@ -324,7 +324,7 @@ func (s *TunnelClient) ServeUDP(localAddr, ID, serverID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() (*item).udpConn.Write(body) @@ -335,7 +335,7 @@ func (s *TunnelClient) UDPRevecive(key, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.log.Printf("udp conn %s connected", ID) @@ -365,7 +365,7 @@ func (s *TunnelClient) UDPRevecive(key, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() (*cui.conn).SetWriteDeadline(time.Now().Add(time.Millisecond * time.Duration(*s.cfg.Timeout))) @@ -384,7 +384,7 @@ func (s *TunnelClient) UDPGCDeamon() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() if s.isStop { diff --git a/services/tunnel/tunnel_server.go b/services/tunnel/tunnel_server.go index 4cdd220..32fc8f0 100644 --- a/services/tunnel/tunnel_server.go +++ b/services/tunnel/tunnel_server.go @@ -368,7 +368,7 @@ func (s *TunnelServer) UDPGCDeamon() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() if s.isStop { @@ -439,7 +439,7 @@ func (s *TunnelServer) UDPRevecive(key, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.log.Printf("udp conn %s connected", ID) @@ -472,7 +472,7 @@ func (s *TunnelServer) UDPRevecive(key, ID string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.sc.UDPListener.WriteToUDP(body, uc.srcAddr) diff --git a/services/udp/udp.go b/services/udp/udp.go index 787bdd6..9ac55e9 100644 --- a/services/udp/udp.go +++ b/services/udp/udp.go @@ -173,7 +173,7 @@ func (s *UDP) OutToUDPGCDeamon() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() if s.isStop { @@ -215,7 +215,7 @@ func (s *UDP) OutToUDP(packet []byte, localAddr, srcAddr *net.UDPAddr) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.log.Printf("udp conn %s <--> %s connected", srcAddr.String(), localAddr.String()) @@ -237,7 +237,7 @@ func (s *UDP) OutToUDP(packet []byte, localAddr, srcAddr *net.UDPAddr) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() (*(s.sc).UDPListener).SetWriteDeadline(time.Now().Add(time.Millisecond * time.Duration(*s.cfg.Timeout))) @@ -274,7 +274,7 @@ func (s *UDP) UDPGCDeamon() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() if s.isStop { @@ -351,7 +351,7 @@ func (s *UDP) UDPRevecive(key string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.log.Printf("udp conn %s connected", key) @@ -384,7 +384,7 @@ func (s *UDP) UDPRevecive(key string) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() s.sc.UDPListener.WriteToUDP(body, uc.srcAddr) diff --git a/utils/lb/backend.go b/utils/lb/backend.go index eac46ba..90678cd 100644 --- a/utils/lb/backend.go +++ b/utils/lb/backend.go @@ -116,7 +116,7 @@ func (b *Backend) startMuxHeartCheck() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for { @@ -151,7 +151,7 @@ func (b *Backend) startTCPHeartCheck() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() for { diff --git a/utils/mapx/map.go b/utils/mapx/map.go index 651a818..07a3171 100644 --- a/utils/mapx/map.go +++ b/utils/mapx/map.go @@ -155,7 +155,7 @@ func (m ConcurrentMap) Iter() <-chan Tuple { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack())) } }() fanIn(chans, ch) @@ -174,7 +174,7 @@ func (m ConcurrentMap) IterBuffered() <-chan Tuple { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack())) } }() fanIn(chans, ch) @@ -195,7 +195,7 @@ func snapshot(m ConcurrentMap) (chans []chan Tuple) { go func(index int, shard *ConcurrentMapShared) { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack())) } }() // Foreach key, value pair. @@ -221,7 +221,7 @@ func fanIn(chans []chan Tuple, out chan Tuple) { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack())) } }() func(ch chan Tuple) { @@ -274,7 +274,7 @@ func (m ConcurrentMap) Keys() []string { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack())) } }() // Foreach shard. @@ -284,7 +284,7 @@ func (m ConcurrentMap) Keys() []string { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:", e, string(debug.Stack())) } }() func(shard *ConcurrentMapShared) { diff --git a/utils/structs.go b/utils/structs.go index 55dbf72..34940b2 100644 --- a/utils/structs.go +++ b/utils/structs.go @@ -90,7 +90,7 @@ func (c *Checker) start() { go func() { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() //log.Printf("checker started") @@ -100,7 +100,7 @@ func (c *Checker) start() { go func(item CheckerItem) { defer func() { if e := recover(); e != nil { - fmt.Printf("crashed:%s", string(debug.Stack())) + fmt.Printf("crashed, err: %s\nstack:",e, string(debug.Stack())) } }() if c.isNeedCheck(item) {