As per my experience when working with PL/SQL code, DBMS_OUTPUT is one of the most frequently used package to display debugging information.
But frequently when using 10G R1 and earlier versions, we come across something like as follows:
ORA-20000: ORU-10028: line length overflow, limit of 255 bytes per line
Single line limit of 255 bytes exceeded.
ORA-20000: ORU-10027: buffer overflow, limit of bytes
Maximum amount of 1 million bytes per session exceeded.
10G R2 increases the single length line limit to 32,767 bytes and the overall session limit is removed altogether.
Note: Now myself and my team use our own procedure called LOGIT for debugging, I will explain it later.