Hard Hangs
Software debug over JTAG uses the CPU as a "debug agent" that acts under control of the debugger. This means the CPU must be able to fetch code and execute it, and communication with other system agents (e.g. memory controller, IO devices) must be possible. If there is a hard-hang on the CPU or any required resource then the debugger capabilities will degrade or simply not function.