Hello -<p>[ I'm interested in general advice here, yet wish to give an example to set it up. ]<p>You have a complex software package that runs on Linux, macOS and Windows. Let's say it also interfaces with a complex piece of hardware via PCIe.<p>When you test the software on Linux, you get output about, say, an I/O page fault. There are some details, but you're not an experienced kernel hacker, so progress is slow if you try to dig in on it.<p>Some of your colleagues suggest that you stay focused on debugging the problem on Linux. Others suggest running the same test case on macOS and Windows, to see what happens, and if that sheds any light on the problem.<p>I'm interested in your thoughts on which approach you would take, with whatever qualifiers you wish to add, and why.<p>The more general question here is when you have a bug roughly like the one described above, is your preference to stay with one particular set-up and dig for all the details you can (call this "depth-first" debugging, maybe) or do you prefer to go breadth-first (when you can) to try to narrow things down?