How do you isolate a bug in a complex system where the root cause could be either a software bug or a hardware defect?