If you don't have a debugger, you're going to end up debugging with print statements. Something I've done in the past on devices where JTAG was too much of a pain.
Of course, it requires you have deterministic logging. If you don't have that, it should be your #1 priority.
Of course, it requires you have deterministic logging. If you don't have that, it should be your #1 priority.