[root@4c9e88417cb4 /]# env | grep ZEND ZEND_DONT_UNLOAD_MODULES=1 USE_ZEND_ALLOC=0 [root@4c9e88417cb4 /]# gdb php GNU gdb (GDB) Red Hat Enterprise Linux 8.2-19.el8 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from php...Reading symbols from .gnu_debugdata for /usr/bin/php...(no debugging symbols found)...done. (no debugging symbols found)...done. Missing separate debuginfos, use: yum debuginfo-install php-cli-8.1.21-1.el8.remi.x86_64 (gdb) b src/base/base.c:772 No symbol table is loaded. Use the "file" command. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (src/base/base.c:772) pending. (gdb) b src/debugger/debugger.c:121 No symbol table is loaded. Use the "file" command. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 2 (src/debugger/debugger.c:121) pending. (gdb) run t.php Starting program: /usr/bin/php t.php warning: Error disabling address space randomization: Operation not permitted [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Breakpoint 1, xdebug_execute_ex (execute_data=0x7f1814b8f030) at /xdebug-build/xdebug/src/base/base.c:772 772 fse = xdebug_add_stack_frame(edata, op_array, XDEBUG_USER_DEFINED); (gdb) print op_array $1 = (zend_op_array *) 0x557cf4a16560 (gdb) print *op_array $2 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 100663296, function_name = 0x0, scope = 0x0, prototype = 0x0, num_args = 0, required_num_args = 0, arg_info = 0x0, attributes = 0x0, cache_size = 56, last_var = 1, T = 10, last = 19, opcodes = 0x557cf4ad9620, run_time_cache__ptr = 0x557cf4a771c0, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x557cf4ad9e30, refcount = 0x557cf4acffe0, last_live_range = 3, last_try_catch = 0, live_range = 0x557cf4ada620, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 1, line_end = 24, doc_comment = 0x0, last_literal = 10, num_dynamic_func_defs = 0, literals = 0x557cf4ad9880, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) c Continuing. Breakpoint 1, xdebug_execute_ex (execute_data=0x7f1814b8f130) at /xdebug-build/xdebug/src/base/base.c:772 772 fse = xdebug_add_stack_frame(edata, op_array, XDEBUG_USER_DEFINED); (gdb) print op_array $3 = (zend_op_array *) 0x557cf4a78f18 (gdb) print *op_array $4 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 35782657, function_name = 0x557cf4ad93e0, scope = 0x557cf4a78cf0, prototype = 0x0, num_args = 1, required_num_args = 1, arg_info = 0x557cf4ada490, attributes = 0x0, cache_size = 24, last_var = 1, T = 1, last = 6, opcodes = 0x557cf4ada970, run_time_cache__ptr = 0x557cf4a79008, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x557cf4ada4c0, refcount = 0x557cf4ada320, last_live_range = 0, last_try_catch = 0, live_range = 0x0, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 14, line_end = 17, doc_comment = 0x0, last_literal = 2, num_dynamic_func_defs = 0, literals = 0x557cf4adaa30, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) x/1s op_array.function_name.val 0x557cf4ad93f8: "__construct" (gdb) c Continuing. Breakpoint 1, xdebug_execute_ex (execute_data=0x7f1814b8f1e0) at /xdebug-build/xdebug/src/base/base.c:772 772 fse = xdebug_add_stack_frame(edata, op_array, XDEBUG_USER_DEFINED); (gdb) print op_array $5 = (zend_op_array *) 0x557cf4a78f18 (gdb) print *op_array $6 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 35782657, function_name = 0x557cf4ad93e0, scope = 0x557cf4a78cf0, prototype = 0x0, num_args = 1, required_num_args = 1, arg_info = 0x557cf4ada490, attributes = 0x0, cache_size = 24, last_var = 1, T = 1, last = 6, opcodes = 0x557cf4ada970, run_time_cache__ptr = 0x557cf4a79008, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x557cf4ada4c0, refcount = 0x557cf4ada320, last_live_range = 0, last_try_catch = 0, live_range = 0x0, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 14, line_end = 17, doc_comment = 0x0, last_literal = 2, num_dynamic_func_defs = 0, literals = 0x557cf4adaa30, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) x/1s op_array.function_name.val 0x557cf4ad93f8: "__construct" (gdb) c Continuing. Breakpoint 1, xdebug_execute_ex (execute_data=0x7f1814b8f1e0) at /xdebug-build/xdebug/src/base/base.c:772 772 fse = xdebug_add_stack_frame(edata, op_array, XDEBUG_USER_DEFINED); (gdb) print op_array $7 = (zend_op_array *) 0x557cf4a259a0 (gdb) print *op_array $8 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 278529, function_name = 0x557cf4ada6f0, scope = 0x557cf4a78cf0, prototype = 0x0, num_args = 0, required_num_args = 0, arg_info = 0x557cf3821d20, attributes = 0x0, cache_size = 0, last_var = 0, T = 5, last = 0, opcodes = 0x557cf3c08bf8 , run_time_cache__ptr = 0x557cf3c01720, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x0, refcount = 0x0, last_live_range = 0, last_try_catch = 0, live_range = 0x0, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 18, line_end = 21, doc_comment = 0x0, last_literal = 0, num_dynamic_func_defs = 0, literals = 0x0, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) x/1s op_array.function_name.val 0x557cf4ada708: "execute" (gdb) watch op_array.function_name Watchpoint 3: op_array.function_name (gdb) info breakpoints Num Type Disp Enb Address What 1 breakpoint keep y 0x00007f181075d59f in xdebug_execute_ex at /xdebug-build/xdebug/src/base/base.c:772 breakpoint already hit 4 times 2 breakpoint keep y 0x00007f181077300a in register_compiled_variables at /xdebug-build/xdebug/src/debugger/debugger.c:121 3 watchpoint keep y op_array.function_name (gdb) c Continuing. Watchpoint 3: op_array.function_name Old value = (zend_string *) 0x557cf4ada6f0 New value = (zend_string *) 0x11503989ad620e57 0x00007f18116d8b2e in _int_free () from /lib64/libc.so.6 (gdb) bt full #0 0x00007f18116d8b2e in _int_free () from /lib64/libc.so.6 No symbol table info available. #1 0x0000557cf370fe23 in ZEND_CALL_TRAMPOLINE_SPEC_OBSERVER_HANDLER () No symbol table info available. #2 0x0000557cf373cb94 in execute_ex () No symbol table info available. #3 0x00007f181075d6c0 in xdebug_execute_ex (execute_data=0x7f1814b8f1e0) at /xdebug-build/xdebug/src/base/base.c:830 op_array = 0x557cf4a259a0 edata = fse = 0x7f1814b8f030 function_nr = 3 code_coverage_function_name = 0x0 code_coverage_filename = 0x0 code_coverage_init = 0 #4 0x0000557cf350457d in ZEND_DO_FCALL_SPEC_RETVAL_USED_HANDLER () No symbol table info available. #5 0x0000557cf373cbdc in execute_ex () No symbol table info available. #6 0x00007f181075d6c0 in xdebug_execute_ex (execute_data=0x7f1814b8f030) at /xdebug-build/xdebug/src/base/base.c:830 op_array = 0x557cf4a16560 edata = fse = 0x7f1814b8f030 function_nr = 0 code_coverage_function_name = 0x0 code_coverage_filename = 0x0 code_coverage_init = 0 #7 0x0000557cf374619c in zend_execute () No symbol table info available. #8 0x0000557cf36d57d5 in zend_execute_scripts () No symbol table info available. #9 0x0000557cf36708ca in php_execute_script () No symbol table info available. #10 0x0000557cf37bec51 in do_cli () No symbol table info available. #11 0x0000557cf351df53 in main () No symbol table info available. (gdb) c Continuing. Breakpoint 1, xdebug_execute_ex (execute_data=0x7f1814b8f1e0) at /xdebug-build/xdebug/src/base/base.c:772 772 fse = xdebug_add_stack_frame(edata, op_array, XDEBUG_USER_DEFINED); (gdb) print op_array $9 = (zend_op_array *) 0x557cf4a79010 (gdb) print *op_array $10 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 33685505, function_name = 0x557cf4ad94d0, scope = 0x557cf4a78cf0, prototype = 0x0, num_args = 2, required_num_args = 2, arg_info = 0x557cf4a77170, attributes = 0x0, cache_size = 24, last_var = 2, T = 3, last = 11, opcodes = 0x557cf4adaa60, run_time_cache__ptr = 0x557cf4a79100, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x557cf4ada570, refcount = 0x557cf4ada550, last_live_range = 1, last_try_catch = 0, live_range = 0x557cf4ada600, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 18, line_end = 21, doc_comment = 0x0, last_literal = 3, num_dynamic_func_defs = 0, literals = 0x557cf4adabc0, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) x/1s op_array.function_name.val 0x557cf4ad94e8: "__call" (gdb) c Continuing. Breakpoint 1, xdebug_execute_ex (execute_data=0x7f1814b8f280) at /xdebug-build/xdebug/src/base/base.c:772 772 fse = xdebug_add_stack_frame(edata, op_array, XDEBUG_USER_DEFINED); (gdb) print op_array $11 = (zend_op_array *) 0x557cf4a78bf8 (gdb) print *op_array $12 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 33554433, function_name = 0x557cf4ad91d0, scope = 0x557cf4a78a08, prototype = 0x0, num_args = 0, required_num_args = 0, arg_info = 0x0, attributes = 0x0, cache_size = 8, last_var = 0, T = 2, last = 7, opcodes = 0x557cf4ad9ee0, run_time_cache__ptr = 0x557cf4a78ce8, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x0, refcount = 0x557cf4ad9ec0, last_live_range = 1, last_try_catch = 0, live_range = 0x557cf4ada010, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 3, line_end = 5, doc_comment = 0x0, last_literal = 4, num_dynamic_func_defs = 0, literals = 0x557cf4ad9fc0, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) x/1s op_array.function_name.val 0x557cf4ad91e8: "execute" (gdb) c Continuing. Breakpoint 2, register_compiled_variables () at /xdebug-build/xdebug/src/debugger/debugger.c:121 121 xdebug_lib_register_compiled_variables(loop_fse, loop_fse->op_array); (gdb) print loop_fse->op_array $13 = (zend_op_array *) 0x557cf4a78bf8 (gdb) print *loop_fse->op_array $14 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 33554433, function_name = 0x557cf4ad91d0, scope = 0x557cf4a78a08, prototype = 0x0, num_args = 0, required_num_args = 0, arg_info = 0x0, attributes = 0x0, cache_size = 8, last_var = 0, T = 2, last = 7, opcodes = 0x557cf4ad9ee0, run_time_cache__ptr = 0x557cf4a78ce8, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x0, refcount = 0x557cf4ad9ec0, last_live_range = 1, last_try_catch = 0, live_range = 0x557cf4ada010, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 3, line_end = 5, doc_comment = 0x0, last_literal = 4, num_dynamic_func_defs = 0, literals = 0x557cf4ad9fc0, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) x/1s loop_fse->op_array.function_name.val 0x557cf4ad91e8: "execute" (gdb) c Continuing. Breakpoint 2, register_compiled_variables () at /xdebug-build/xdebug/src/debugger/debugger.c:121 121 xdebug_lib_register_compiled_variables(loop_fse, loop_fse->op_array); (gdb) print loop_fse->op_array $15 = (zend_op_array *) 0x557cf4a79010 (gdb) print *loop_fse->op_array $16 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 33685505, function_name = 0x557cf4ad94d0, scope = 0x557cf4a78cf0, prototype = 0x0, num_args = 2, required_num_args = 2, arg_info = 0x557cf4a77170, attributes = 0x0, cache_size = 24, last_var = 2, T = 3, last = 11, opcodes = 0x557cf4adaa60, run_time_cache__ptr = 0x557cf4a79100, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x557cf4ada570, refcount = 0x557cf4ada550, last_live_range = 1, last_try_catch = 0, live_range = 0x557cf4ada600, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 18, line_end = 21, doc_comment = 0x0, last_literal = 3, num_dynamic_func_defs = 0, literals = 0x557cf4adabc0, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) x/1s loop_fse->op_array.function_name.val 0x557cf4ad94e8: "__call" (gdb) c Continuing. Breakpoint 2, register_compiled_variables () at /xdebug-build/xdebug/src/debugger/debugger.c:121 121 xdebug_lib_register_compiled_variables(loop_fse, loop_fse->op_array); (gdb) print loop_fse->op_array $17 = (zend_op_array *) 0x557cf4a259a0 (gdb) print *loop_fse->op_array $18 = {type = 21 '\025', arg_flags = "\332n\243", fn_flags = 21881, function_name = 0x11503989ad620e57, scope = 0x557cf4a78cf0, prototype = 0x0, num_args = 0, required_num_args = 0, arg_info = 0x557cf3821d20, attributes = 0x0, cache_size = 0, last_var = 0, T = 5, last = 0, opcodes = 0x557cf3c08bf8 , run_time_cache__ptr = 0x557cf3c01720, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x0, refcount = 0x0, last_live_range = 0, last_try_catch = 0, live_range = 0x0, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 18, line_end = 21, doc_comment = 0x0, last_literal = 0, num_dynamic_func_defs = 0, literals = 0x0, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) x/1s loop_fse->op_array.function_name.val 0x11503989ad620e6f: (gdb) c Continuing. Breakpoint 2, register_compiled_variables () at /xdebug-build/xdebug/src/debugger/debugger.c:121 121 xdebug_lib_register_compiled_variables(loop_fse, loop_fse->op_array); (gdb) print loop_fse->op_array $19 = (zend_op_array *) 0x557cf4a16560 (gdb) print *loop_fse->op_array $20 = {type = 2 '\002', arg_flags = "\000\000", fn_flags = 100663296, function_name = 0x0, scope = 0x0, prototype = 0x0, num_args = 0, required_num_args = 0, arg_info = 0x0, attributes = 0x0, cache_size = 56, last_var = 1, T = 10, last = 19, opcodes = 0x557cf4ad9620, run_time_cache__ptr = 0x557cf4a771c0, static_variables_ptr__ptr = 0x0, static_variables = 0x0, vars = 0x557cf4ad9e30, refcount = 0x557cf4acffe0, last_live_range = 3, last_try_catch = 0, live_range = 0x557cf4ada620, try_catch_array = 0x0, filename = 0x557cf4ad0000, line_start = 1, line_end = 24, doc_comment = 0x0, last_literal = 10, num_dynamic_func_defs = 0, literals = 0x557cf4ad9880, dynamic_func_defs = 0x0, reserved = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) c Continuing. Error evaluating expression for watchpoint 3 value has been optimized out Watchpoint 3 deleted. 0x00007f181075d760 in xdebug_execute_ex (execute_data=0x7f1814b8f1e0) at /xdebug-build/xdebug/src/lib/vector.h:64 64 v->count--; (gdb) c Continuing. PHP Fatal error: Uncaught ReflectionException: Class "" does not exist in /t.php:4 Stack trace: #0 /t.php(4): ReflectionClass->__construct() #1 /t.php(20): class@anonymous->execute() #2 /t.php(9): Wrapper->__call() #3 {main} thrown in /t.php on line 4 [Inferior 1 (process 3721) exited with code 0377]