func threads(client service.Client, args ...string) error { threads, err := client.ListThreads() if err != nil { return err } state, err := client.GetState() if err != nil { return err } sort.Sort(byThreadID(threads)) for _, th := range threads { prefix := " " if state.CurrentThread != nil && state.CurrentThread.ID == th.ID { prefix = "* " } if th.Function != nil { fmt.Printf("%sThread %d at %#v %s:%d %s\n", prefix, th.ID, th.PC, shortenFilePath(th.File), th.Line, th.Function.Name) } else { fmt.Printf("%sThread %s\n", prefix, formatThread(th)) } } return nil }