On Tue, Feb 14, 2012 at 6:28 PM, Rasmus Lerdorf <ras...@php.net> wrote:

> On 02/14/2012 09:22 AM, Adi Mutu wrote:
> > Thanks Julien....
> >
> > I don't know french, but i'll read it using google translate:)
>
> If you just want to see some of the function calls, most calls that are
> visible in userspace are prefixed with "zif_" internally.
>
> eg.
>
> % gdb sapi/cli/php
> GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
> ...
> (gdb) b zif_strlen
> Breakpoint 1 at 0x7b2760: file
> /home/rasmus/php-src/branches/PHP_5_3/Zend/zend_builtin_functions.c,
> line 455.
> (gdb) run -r 'echo strlen("123");'
> Breakpoint 1, zif_strlen (ht=1, return_value=0x1200eb0,
> return_value_ptr=0x0, this_ptr=0x0, return_value_used=1)
>    at
> /home/rasmus/php-src/branches/PHP_5_3/Zend/zend_builtin_functions.c:455
> 455     {
> (gdb) l
> 450
> 451
> 452     /* {{{ proto int strlen(string str)
> 453        Get string length */
> 454     ZEND_FUNCTION(strlen)
> 455     {
> 456             char *s1;
> 457             int s1_len;
>
> -Rasmus
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
Yeah, that's the PHP_FUNCTION() macro. 'zif' meaning "Zend Internal
Function".
One more step would be to read the preprocessed code (GCC -E), as PHP
source heavily uses macros

If you want, you can also read the source code online using the excellent
http://lxr.php.net :)

Julien.P

Reply via email to