The test case ext/sockets/tests/socket_recvmsg.php has following output
on x86_64:
=======
...
1 Array
2 (
3 [name] => Array
4 (
5 [family] => 10
6 [addr] => ::1
7 [port] => 7001
8 [flowinfo] => 0
9 [scope_id] => 0
10 )
11
12 [control] => Array
13 (
14 [0] => Array
15 (
16 [level] => 41
17 [type] => 50
18 [data] => Array
19 (
20 [addr] => ::1
21 [ifindex] => 1
22 )
23 )
24 )
...
=======
This is output by c
function:"socket_recvmsg"(/home/work/php/php/ext/sockets/sendrecvmsg.c:214),
which returns a struct "executor_globals.current_execute_data".
The struct is defined as :
(gdb) ptype executor_globals.current_execute_data
type = struct _zend_execute_data {
const zend_op *opline;
zend_execute_data *call;
zval *return_value;
zend_function *func;
zval This;
zend_execute_data *prev_execute_data;
zend_array *symbol_table;
void **run_time_cache;
zval *literals;
} *
Where do the above output values (line 18-21) store in the struct
_zend_execute_data ?
Thanks,
Sam