func copyBreakpointInfo(bp *proc.Breakpoint, requested *api.Breakpoint) (err error) { bp.Name = requested.Name bp.Tracepoint = requested.Tracepoint bp.Goroutine = requested.Goroutine bp.Stacktrace = requested.Stacktrace bp.Variables = requested.Variables bp.LoadArgs = api.LoadConfigToProc(requested.LoadArgs) bp.LoadLocals = api.LoadConfigToProc(requested.LoadLocals) bp.Cond = nil if requested.Cond != "" { bp.Cond, err = parser.ParseExpr(requested.Cond) } return err }
// Stacktrace returns stacktrace of goroutine Id up to the specified Depth. // // If Full is set it will also the variable of all local variables // and function arguments of all stack frames. func (s *RPCServer) Stacktrace(arg StacktraceIn, out *StacktraceOut) error { cfg := arg.Cfg if cfg == nil && arg.Full { cfg = &api.LoadConfig{true, 1, 64, 64, -1} } locs, err := s.debugger.Stacktrace(arg.Id, arg.Depth, api.LoadConfigToProc(cfg)) if err != nil { return err } out.Locations = locs return nil }