On Tue, 26 Sep 2006, Prometheus Prometheus wrote:

> i was just asking myself, if it is possible, to get the return value of a
> function after the function calls "return" (or throws an exception) and before
> the value is returned

Only through an extension.

> i thought it would be a very impressive function for that purpose
> for what i would need it:
> think about testing a big php application
> calling hundreds of functions and debugging them takes very long
> but if i could track the arguments (debug_back_trace() function) AND the
> return values (that's what i'm asking for) i could run a complete test and
> after this i could change the input values automated and compare it with the
> output i got before

Xdebug (http://xdebug.org) does this with trace files storing both 
function/method name, parameters and return values to a file on disk. 
See: http://xdebug.org/docs-settings.php#auto_trace (and the 3 settings 
after it in the docs)

> the question is:
> Q1: how is the return value (return or throw) stored within php?
>      or another question would be: is it possible to write an extension which
> can retrieve every variable set within my php session? (i know of the security
> problems this produces, but until know, i'm evaluating if it can work) and
> would be the return value within this variables?
> any hint on this would be great!
> since it's possible to create a sandbox within php (runkit extension) i think
> it should be possible to get the return value (or exception object) before the
> calling function receives it, not?

Yes, this is possible with an extension. You would need to reimplement 
the zend_execute function. Again, you can find on how to do that in the 
Xdebug sources.

> Q2: maybe i didn't find it, but is there a finished php function which i can
> use like debug_back_trace but for the return value?

There is none.

regards,
Derick

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to