The Crystal Programming Language Forum

Backtrace of all threads

It would still help tremendously if somebody could implement a way to spit out all fiber backtraces…sometimes if crystal is “hung” it’s impossible to use gdb to see where it is hung at, so it feels quite blind. I have to add a bunch of STDERR.puts ’ in there to try and track its progress.

that or another idea would be a compiler mode “tracer” (like ruby tracer) that prints something to STDERR for “each and every method call” I’d love that too!

I’d be happy to contribute a couple hundred toward either of these two efforts if it would help.
See also https://github.com/crystal-lang/crystal/issues/6461

Cheers!

In OSX I’ve used the sample app for that.

In linux there seems to be something similar https://unix.stackexchange.com/questions/314642/what-is-the-linux-equivalent-of-mac-os-xs-sample-process.

I agree that some internal introspection would be good.

Nice, yeah I’ve tried “gdb poor man’s profiler” I’ll give oprofile a shot. I think if the “fiber” is on a blocking IO call it won’t show up in the profile graphs, so it’s so fast that stack profilers miss it, but they don’t miss cpu bound stuff which is nice… :)

Ah, yeah I missed that you wanted the sleeping fibers also. Fair point.