Toad World® Forums

'Supported' variables in Auto Debugger


#1

Hi,
I’m trying to demonstrate the Auto Debugger to other members of my team, so I thought I’d just write a very small bit of PL/SQL to demonstrate it. When I try and apply the Auto Debugger to this code:
BEGIN
DECLARE
l_last_name hz_parties.person_last_name%TYPE;
l_first_name hz_parties.person_first_name%TYPE;
BEGIN
FOR r IN (SELECT *
FROM hz_parties
WHERE person_last_name = ‘Williams’)
LOOP
l_last_name := r.person_last_name;
l_first_name := r.person_first_name;
END LOOP;
END;
END;

I get the error message:
‘There were no supported variables or parameters found’

What’s wrong with these variables, and if these aren’t supported, which ones are?

Ben


#2

OK, I’ve answered my own question.

This is supported:
l number := 0;
This is not:
l_last_name hz_parties.person_last_name%TYPE := ‘W’;

If you have a ‘supported’ variable in your package, the auto debugger will add debug info after an unsupported variable has a value assigned, but the debug info is not for the unsupported variable:

l_first_name := r.person_first_name;
– <Toad_56398571_2> *** DO NOT REMOVE THE AUTO DEBUGGER START/END TAGS
DBMS_OUTPUT.PUT_LINE(’{Toad_56398571_2} ‘);
DBMS_OUTPUT.PUT_LINE(’{Toad_56398571_2}[— 2 —]’);
DBMS_OUTPUT.PUT_LINE(’{Toad_56398571_2} ‘);
DBMS_OUTPUT.PUT_LINE(’{Toad_56398571_2}[2] l = ’ || l);
– </Toad_56398571_2>

This could probably be improved!

Ben


#3

It’s extremely simple and doesn’t evaluate more complex types. That
would be a nice ER for the future. It also outputs anything that it can after
every assignment, before exit conditions, after calls to other PL/SQL, etc. It
doesn’t do too much “thinking” about what is appropriate and
what is not at a given insertion point. Too much thinking will decrease
performance and for real debugging you have access to the DBMS or JDWP
debuggers. This is a quick and dirty debugging tool and not a replacement for
the real debugger(s).