A blunt, but useful method for debugging PeopleCode is to use the inbuilt "Error" function to stop processing and provide a message.
Something as simple as this can be a valuable debugging tool at times:
Error "The value of variable x=" | &x;
Most people use message box (or the now very deprecated WinMessage), but at times this may not appear depending on the context of the PeopleCode you are executing. Error stops processing (a poor man's breakpoint) so you can find out what's going on at that exact point in the code.