How make DBMS_OUTPUT?
You can't do this in Teradata like in Oracle.

As a workaround you might Insert into a temporary table and either run a Select on it at the end of the SP or Select from the client after the CALL.

-- create the message table once
CREATE GLOBAL TEMPORARY TABLE DBMS_OUTPUT
 (
   TS TIMESTAMP(2) DEFAULT Current_Timestamp(2), 
   Step VARCHAR(100), 
   ErrorMsg VARCHAR(200)
 ) ON COMMIT PRESERVE ROWS;

-- now create your SP
REPLACE PROCEDURE mySP (...)
DYNAMIC RESULT SETS 1
BEGIN

   ...

    -- clear messages from previous CALL at start of SP 
   DELETE FROM DBMS_OUTPUT;

   ...

   -- add a message
   INSERT INTO DBMS_OUTPUT (Step, ErrorMsg) VALUES ('step X', 'bla bla bla');    

   ...

   -- finally return all messages (also available after the CALL)
   BEGIN
      DECLARE qry VARCHAR(100);
      DECLARE ErrorMsgs CURSOR WITH RETURN ONLY FOR c;
      SET qry = 'SELECT * FROM DBMS_OUTPUT ORDER BY TS;';
      PREPARE c FROM qry;
      OPEN ErrorMsgs;
   END;

END;