19.4.2 USB Bus Analyzer

There are still some conditions that the DEBUG() and ASSERT() macros are not sufficient for a developer to find the problem. One way to gain more debug information is to use a USB bus analyzer. Because a bus analyzer is inserted between the host and the device, the bus analyzer can monitor all the traffic on a single USB cable. Having access to the USB bus traffic information can make it easier to root cause some difficult bugs-for example, when a host controller loses packets on some occasions. Also, for the state machine chaos problem that was introduced in Section 19.3.4, a bus analyzer can display the packet sequences and the unfinished state machine. This can help quickly solve that type of problem.