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