I spent a couple of hours this morning debugging RubyGems unit test
failures along with Jirapong Nanta. It was a fun exercise. We tracked
down two issues and hopefully Jirapong found the experience useful to
jump start his exploration of the IronRuby code base.
I am open to helping others too. I have put the following notes at the
bottom of http://wiki.github.com/ironruby/ironruby/debugging to ensure
that we can have a productive session. Jirapong had done his homework,
gotten RubyGems to work cleanly with MRI, and done a bit of debugging
himself, which is why we had a productive session.
Pair debugging with experienced IronRuby developers
Some experienced IronRuby developers may be available to debug a problem
with you. Watching over their shoulder can help a newcomer to the code
base learn debugging tips and techniques. To make this a fruitful
exercise, please follow the following guidelines:
-
Send email to
[email protected]mailto:[email protected] asking
if any experienced developer is available to help you
-
Ensure that you can build and successfully run all of the
RubySpechttp://wiki.github.com/ironruby/ironruby/rubyspec tests.
-
Restrict the problems to pure Ruby code which is known to work
with MRI. Ensuring a clean working baseline functionality in MRI ensures
that the problem truly in IronRuby. Without a known clean MRI baseline,
the problem can be in a component other than IronRuby which you are as
well-equipped to diagnose as anyone else.
-
Set up a clean repro. Spend time ensuring that it is not a
configuration issue, and that the problem can be easily reproduced on
other machines. Document detailed information about your platform,
version of IronRuby, and the steps to repro the problem.
-
Do basic debugging by yourself beforehand. This will ensure
that you get the most out of the session and can keep up with what’s
going on over Live Meeting.
-
Set up Live Meeting<http://livemeeting.com> on your machine,
which will allow you to watch the debugging session.
-
Add the experienced developer as a friend/buddy in some Chat
program so that you can ask questions during the debugging session.
Thanks,
Shri