Using go's standard tooling, is there any way to -- log? profile? report on? -- the go routines a program invokes?
The specific use cases I'm thinking of are
Debugging concurrency issues/race conditions (i.e. which go routines ran when for a specific run of a program)
Identifying poorly performing go routines (how often is a particular go routine invoked, how long is go spending in an individual go routine)
Is there standard tooling for doing this sort of debugging? If not, are there de-facto standard third party libraries for this sort of thing? Or does go's culture encourage developers to build this sort of profiling into their own applications and systems?