How would you debug a problem from the application layer all the way down to a specific hardware register?