This is one of the reasons that open source is great thing. If you encounter bug you may go as deep as you need to. No inaccessible black boxes in your way.
When I encountered bug using MS software in my projects I could go only as far as their bug tracking site that had my bug an it was more than year old. This happened to me twice.
On the other hand when I found bug in prototype.js I could fix it myself. They even accepted my patch and included it in future release.
It's not realistically possible, though: many software components have millions of lines of code - code bases that would take years to really understand.
When I encountered bug using MS software in my projects I could go only as far as their bug tracking site that had my bug an it was more than year old. This happened to me twice.
On the other hand when I found bug in prototype.js I could fix it myself. They even accepted my patch and included it in future release.