Excitement! Letdown!

Ovid on 2006-08-11T16:51:44

Excitement
Discovering Devel::STrace on the CPAN
Letdown
Discovering that Devel::STrace requires threads

I had some interactive code which needed debugging and trying to run the debugger on it while sifting through the output was confusing, so it looked like Devel::STrace would allow me to have a Perl version of strace to run and I could follow it in a separate terminal window. Looks like that ain't gonna happen. Any suggestions on how I could hack the debugger or my code to do this?

Er, correction. It turns out that my code breaks completely under the debugger. Surprise, surprise, eh? Time to see if Devel::ebug will turn the trick.


RE:: Devel::STrace

renodino on 2006-08-11T19:26:26

Devel::STrace (and its dependent Devel::RingBuffer) needs threads->self()->tid() to uniquely identify each thread in the ringbuffer. As the same infrastructure is being applied to a (in-development) debugger, I'll take a look at what can be done to isolate the threads dependency for non-threads Perl.

Re:: Devel::STrace

Ovid on 2006-08-11T20:50:40

Hey, that would be great! I hope you can find a way to pull that off.

Re:: Devel::STrace

renodino on 2006-08-13T18:54:20

OK, Devel-STrace-0.31.tar.gz and Devel-RingBuffer-0.31.tar.gz are now available at my website. While I don't have any nonthreads Perls to test with, I've emulated via an environment variable.

I'd appreciate your giving it a whirl on your nonthreads Perl and let me know if it flies; I won't CPAN until I hear from you.

Re:: Devel::STrace

Ovid on 2006-08-14T08:13:26

Thanks for doing this. Unfortunately, Devel::RingBuffer requires IPC::Mmap and the latter requires threads.

Re:: Devel::STrace

renodino on 2006-08-14T15:28:19

<sigh/> Sorry about that (FWIW, its only the test suite that had threads dependencies). IPC-Mmap-0.12 is available on my website. If you get a chance, give it a go.

Re:: Devel::STrace

Ovid on 2006-08-14T15:55:09

I'll try and get to this when I have a chance. I'm pretty busy at work right now. Currently, Devel::Trace solved my problem.