├── .azure-pipelines.yml ├── .azure ├── apt.yml ├── community_job.yml ├── configure.yml ├── coverage_job.yml ├── i386 │ ├── apt.yml │ ├── job.yml │ └── test.yml ├── install.yml ├── job.yml ├── macos │ ├── brew.yml │ ├── job.yml │ ├── php.yml │ └── test.yml ├── msan_job.yml ├── setup.yml └── test.yml ├── .build.scripts ├── compile.sh ├── make-release.php └── show-errors.sh ├── .circleci └── config.yml ├── .gdbinit ├── .gitattributes ├── .github ├── FUNDING.yml ├── dependabot.yml └── workflows │ └── tests.yml ├── .gitignore ├── .xdebugci ├── build-nightly-php.sh ├── ingest.php ├── rebuild-all.sh ├── test-all.sh └── test-thread.sh ├── CONTRIBUTING.rst ├── CREDITS ├── LICENSE ├── Makefile.frag ├── README.rst ├── RELEASE_PROCESS.rst ├── composer.json ├── config.m4 ├── config.w32 ├── contrib ├── branch-coverage-to-dot.php ├── online_profiling_prepend.php ├── tracefile-analyser.php └── xt.vim ├── m4 ├── clocks.m4 └── pkg.m4 ├── package.xml ├── php_xdebug.h ├── php_xdebug.stub.php ├── php_xdebug_arginfo.h ├── rebuild.sh ├── run-xdebug-tests.php ├── src ├── base │ ├── base.c │ ├── base.h │ ├── base_globals.h │ ├── base_private.h │ ├── ctrl_socket.c │ ├── ctrl_socket.h │ ├── filter.c │ └── filter.h ├── coverage │ ├── branch_info.c │ ├── branch_info.h │ ├── code_coverage.c │ ├── code_coverage.h │ └── code_coverage_private.h ├── debugger │ ├── com.c │ ├── com.h │ ├── debugger.c │ ├── debugger.h │ ├── debugger_private.h │ ├── handler_dbgp.c │ ├── handler_dbgp.h │ ├── handlers.c │ ├── handlers.h │ ├── ip_info.c │ └── ip_info.h ├── develop │ ├── develop.c │ ├── develop.h │ ├── develop_private.h │ ├── monitor.c │ ├── monitor.h │ ├── php_functions.c │ ├── stack.c │ ├── stack.h │ ├── superglobals.c │ └── superglobals.h ├── gcstats │ ├── gc_stats.c │ ├── gc_stats.h │ └── gc_stats_private.h ├── lib │ ├── cmd_parser.c │ ├── cmd_parser.h │ ├── compat.c │ ├── compat.h │ ├── crc32.c │ ├── crc32.h │ ├── file.c │ ├── file.h │ ├── hash.c │ ├── hash.h │ ├── headers.c │ ├── headers.h │ ├── lib.c │ ├── lib.h │ ├── lib_private.h │ ├── llist.c │ ├── llist.h │ ├── log.c │ ├── log.h │ ├── mm.h │ ├── php-header.h │ ├── set.c │ ├── set.h │ ├── str.c │ ├── str.h │ ├── timing.c │ ├── timing.h │ ├── usefulstuff.c │ ├── usefulstuff.h │ ├── var.c │ ├── var.h │ ├── var_export_html.c │ ├── var_export_html.h │ ├── var_export_line.c │ ├── var_export_line.h │ ├── var_export_text.c │ ├── var_export_text.h │ ├── var_export_xml.c │ ├── var_export_xml.h │ ├── vector.h │ ├── xml.c │ └── xml.h ├── profiler │ ├── profiler.c │ ├── profiler.h │ └── profiler_private.h └── tracing │ ├── trace_computerized.c │ ├── trace_computerized.h │ ├── trace_flamegraph.c │ ├── trace_flamegraph.h │ ├── trace_html.c │ ├── trace_html.h │ ├── trace_textual.c │ ├── trace_textual.h │ ├── tracing.c │ ├── tracing.h │ └── tracing_private.h ├── template.rc ├── tests ├── base │ ├── 001.phpt │ ├── bug00001.phpt │ ├── bug00241.phpt │ ├── bug00419-sunos.phpt │ ├── bug00419.phpt │ ├── bug00538.inc │ ├── bug00558-001.phpt │ ├── bug00665.phpt │ ├── bug00723.phpt │ ├── bug00787.phpt │ ├── bug00801.phpt │ ├── bug00823.phpt │ ├── bug00913-php80.phpt │ ├── bug00913-php81.phpt │ ├── bug00931.phpt │ ├── bug00978-002.phpt │ ├── bug00978.inc │ ├── bug01048-002.phpt │ ├── bug01048.inc │ ├── bug01088.phpt │ ├── bug01133.phpt │ ├── bug01148.phpt │ ├── bug01266.phpt │ ├── bug01272-002.phpt │ ├── bug01272.inc │ ├── bug01515-001.phpt │ ├── bug01515.inc │ ├── bug01556.phpt │ ├── bug01583.phpt │ ├── bug01629.phpt │ ├── bug01758.phpt │ ├── bug01790.phpt │ ├── bug01907.phpt │ ├── bug02020.phpt │ ├── bug02034.phpt │ ├── bug02036-php83.phpt │ ├── bug02036-php84.phpt │ ├── bug02100.phpt │ ├── bug02295.phpt │ ├── bug02307-001.phpt │ ├── bug02307-002.phpt │ ├── bug02307-003.inc │ ├── bug02307-003.phpt │ ├── bug02319.phpt │ ├── bug02321-001.phpt │ ├── bug02321-002.phpt │ ├── bug02321-003.phpt │ ├── bug02321-004.phpt │ ├── deprecated-setting-001.phpt │ ├── deprecated-setting-002.phpt │ ├── deprecated-setting-003.phpt │ ├── filter-errors.phpt │ ├── internal-function-calls.phpt │ └── peak_memory_usage.phpt ├── coverage │ ├── 670-ConsistentHashing.inc │ ├── bug00212-001.inc │ ├── bug00212-001.phpt │ ├── bug00212-002.inc │ ├── bug00212-002.phpt │ ├── bug00212-003.inc │ ├── bug00212-003.phpt │ ├── bug00213-opcache.phpt │ ├── bug00213.inc │ ├── bug00213.phpt │ ├── bug00313.inc │ ├── bug00313.phpt │ ├── bug00318.inc │ ├── bug00318.phpt │ ├── bug00334-noopcache.phpt │ ├── bug00334-opcache.phpt │ ├── bug00334.inc │ ├── bug00422.inc │ ├── bug00422.phpt │ ├── bug00470.inc │ ├── bug00470.phpt │ ├── bug00472.inc │ ├── bug00472.phpt │ ├── bug00515.inc │ ├── bug00515.phpt │ ├── bug00535.phpt │ ├── bug00562.phpt │ ├── bug00651-001.phpt │ ├── bug00651-002.phpt │ ├── bug00651-003.phpt │ ├── bug00670.phpt │ ├── bug00697-php83.phpt │ ├── bug00697-php84-noopcache.phpt │ ├── bug00697-php84-opcache.phpt │ ├── bug00697.inc │ ├── bug00703.inc │ ├── bug00703.phpt │ ├── bug00757-001.phpt │ ├── bug00757-002-noopcache.phpt │ ├── bug00757-002-opcache.phpt │ ├── bug00766.inc │ ├── bug00766.phpt │ ├── bug00879.inc │ ├── bug00879.phpt │ ├── bug01034-001-noopcache-php828.phpt │ ├── bug01034-001-noopcache-php829.phpt │ ├── bug01034-001-opcache-php828.phpt │ ├── bug01034-001-opcache-php829.phpt │ ├── bug01034-001.inc │ ├── bug01034-002-noopcache.phpt │ ├── bug01034-002.inc │ ├── bug01034-003-noopcache.phpt │ ├── bug01034-003.inc │ ├── bug01034-004-noopcache.phpt │ ├── bug01034-004.inc │ ├── bug01034-005-noopcache.phpt │ ├── bug01034-005-opcache.phpt │ ├── bug01034-005.inc │ ├── bug01094-001.phpt │ ├── bug01094-002.phpt │ ├── bug01180.phpt │ ├── bug01192.phpt │ ├── bug01195.inc │ ├── bug01195.phpt │ ├── bug01200.inc │ ├── bug01200.phpt │ ├── bug01210-noopcache.phpt │ ├── bug01210-opcache.phpt │ ├── bug01210.inc │ ├── bug01241-001.phpt │ ├── bug01241-002.inc │ ├── bug01241-002.phpt │ ├── bug01241.inc │ ├── bug01258.phpt │ ├── bug01263.inc │ ├── bug01263.phpt │ ├── bug01270-noopcache.phpt │ ├── bug01270-opcache.phpt │ ├── bug01270.inc │ ├── bug01278.inc │ ├── bug01278.phpt │ ├── bug01357.phpt │ ├── bug01381.inc │ ├── bug01381.phpt │ ├── bug01386-class1.inc │ ├── bug01386-class2.inc │ ├── bug01386-noopcache.phpt │ ├── bug01386-opcache.phpt │ ├── bug01394.phpt │ ├── bug01403.inc │ ├── bug01403.phpt │ ├── bug01420-noopcache.phpt │ ├── bug01420.inc │ ├── bug01429.phpt │ ├── bug01439.phpt │ ├── bug01446.inc │ ├── bug01446.phpt │ ├── bug01486-001-noopcache.phpt │ ├── bug01486-001-php81-opcache.phpt │ ├── bug01486-001-php82-opcache.phpt │ ├── bug01486-001.inc │ ├── bug01486-002-noopcache.phpt │ ├── bug01486-002.inc │ ├── bug01502.inc │ ├── bug01502.phpt │ ├── bug01509-noopcache.phpt │ ├── bug01509-opcache.phpt │ ├── bug01509.inc │ ├── bug01530-noopcache.phpt │ ├── bug01530-opcache.phpt │ ├── bug01530.inc │ ├── bug01571-php82.phpt │ ├── bug01571-php84.phpt │ ├── bug01679.inc │ ├── bug01679.phpt │ ├── bug01691.inc │ ├── bug01691.phpt │ ├── bug01713.inc │ ├── bug01713.phpt │ ├── bug01728.inc │ ├── bug01728.phpt │ ├── bug01733.inc │ ├── bug01733.phpt │ ├── bug01733a.inc │ ├── bug01779.inc │ ├── bug01779.phpt │ ├── bug01787.inc │ ├── bug01787.phpt │ ├── bug01788.phpt │ ├── bug01788a.inc │ ├── bug01788b.inc │ ├── bug01841-001.inc │ ├── bug01841-001.phpt │ ├── bug01841-002.inc │ ├── bug01841-002.phpt │ ├── bug01841-003.inc │ ├── bug01841-003.phpt │ ├── bug01841-004.inc │ ├── bug01841-004.phpt │ ├── bug01841-005.inc │ ├── bug01841-005.phpt │ ├── bug01851.inc │ ├── bug01851.phpt │ ├── bug01903-001.phpt │ ├── bug01903-002.phpt │ ├── bug01910.inc │ ├── bug01910.phpt │ ├── bug01922.inc │ ├── bug01922.phpt │ ├── bug01932.inc │ ├── bug01932.phpt │ ├── bug01938-Bar.inc │ ├── bug01938-FooTrait.inc │ ├── bug01938.phpt │ ├── bug01992-filter.inc │ ├── bug01992.phpt │ ├── bug02009.phpt │ ├── bug02075.inc │ ├── bug02075.phpt │ ├── bug02085.inc │ ├── bug02085.phpt │ ├── bug02179-noopcache-php828.phpt │ ├── bug02179-noopcache-php829.phpt │ ├── bug02179-opcache.phpt │ ├── bug02179.inc │ ├── coverage-filter-path-exclude-001.phpt │ ├── coverage-filter-path-include-001.phpt │ ├── coverage.inc │ ├── coverage.phpt │ ├── coverage2.phpt │ ├── coverage3.phpt │ ├── coverage4.inc │ ├── coverage4.phpt │ ├── coverage5-php828.phpt │ ├── coverage5-php829.phpt │ ├── coverage5.inc │ ├── coverage6.inc │ ├── coverage6.phpt │ ├── coverage7-noopcache-php828.phpt │ ├── coverage7-noopcache-php829.phpt │ ├── coverage7.inc │ ├── coverage_exit.inc │ ├── coverage_exit.phpt │ ├── dump-branch-coverage.inc │ ├── jmp_frameless.inc │ ├── jmp_frameless.phpt │ └── xdebug_code_coverage_started.phpt ├── debugger │ ├── break-echo.inc │ ├── break-with-error.inc │ ├── bug00168.phpt │ ├── bug00209.inc │ ├── bug00209.phpt │ ├── bug00421-001.phpt │ ├── bug00421-002.phpt │ ├── bug00421.inc │ ├── bug00475.inc │ ├── bug00475.phpt │ ├── bug00494-php80.phpt │ ├── bug00494-php81.phpt │ ├── bug00494.inc │ ├── bug00530.inc │ ├── bug00530.phpt │ ├── bug00538.inc │ ├── bug00538.phpt │ ├── bug00566-002.inc │ ├── bug00566-002.phpt │ ├── bug00606-002.inc │ ├── bug00606-002.phpt │ ├── bug00606.inc │ ├── bug00606.phpt │ ├── bug00614-php80.phpt │ ├── bug00614-php81.phpt │ ├── bug00614.inc │ ├── bug00619.inc │ ├── bug00619.phpt │ ├── bug00622.inc │ ├── bug00622.phpt │ ├── bug00623.inc │ ├── bug00623.phpt │ ├── bug00627-symlink-target.inc │ ├── bug00627-symlink.inc │ ├── bug00627.inc │ ├── bug00627.phpt │ ├── bug00667.inc │ ├── bug00667.phpt │ ├── bug00678-001.inc │ ├── bug00678-001.phpt │ ├── bug00678-002.inc │ ├── bug00678-002.phpt │ ├── bug00686.inc │ ├── bug00686.phpt │ ├── bug00687.inc │ ├── bug00687.phpt │ ├── bug00688.inc │ ├── bug00688.phpt │ ├── bug00689.inc │ ├── bug00689.phpt │ ├── bug00763.inc │ ├── bug00763.phpt │ ├── bug00774.inc │ ├── bug00774.phpt │ ├── bug00777.inc │ ├── bug00777.phpt │ ├── bug00778.inc │ ├── bug00778.phpt │ ├── bug00790-001.inc │ ├── bug00790-001.phpt │ ├── bug00790-002.inc │ ├── bug00790-002.phpt │ ├── bug00797.inc │ ├── bug00797.phpt │ ├── bug00806.inc │ ├── bug00806.phpt │ ├── bug00814.inc │ ├── bug00814.phpt │ ├── bug00815.inc │ ├── bug00815.phpt │ ├── bug00838.inc │ ├── bug00838.phpt │ ├── bug00839.inc │ ├── bug00839.phpt │ ├── bug00840.inc │ ├── bug00840.phpt │ ├── bug00842-001.phpt │ ├── bug00842-002.phpt │ ├── bug00842-003.phpt │ ├── bug00842-004.phpt │ ├── bug00842.inc │ ├── bug00864.inc │ ├── bug00864.phpt │ ├── bug00886.inc │ ├── bug00886.phar │ ├── bug00886.phpt │ ├── bug00923.inc │ ├── bug00923.phpt │ ├── bug00932.phpt │ ├── bug00964-001.phpt │ ├── bug00964-002.phpt │ ├── bug00978-001.phpt │ ├── bug00978.inc │ ├── bug00979.inc │ ├── bug00979.phpt │ ├── bug00987-005.inc │ ├── bug00987-005.phpt │ ├── bug00990-001.inc │ ├── bug00990-001.phpt │ ├── bug00990-002.inc │ ├── bug00990-002.phpt │ ├── bug00990-003.inc │ ├── bug00990-003.phpt │ ├── bug00996-001.phpt │ ├── bug00996-002.phpt │ ├── bug00996.inc │ ├── bug00998-ipv4.phpt │ ├── bug00998-ipv4_localhost.phpt │ ├── bug00998-ipv6.phpt │ ├── bug00998-ipv6_localhost.phpt │ ├── bug00998.inc │ ├── bug01007-index.inc │ ├── bug01007-simpleclass.inc │ ├── bug01007.phpt │ ├── bug01025.inc │ ├── bug01025.phpt │ ├── bug01048-001.phpt │ ├── bug01048.inc │ ├── bug01059.inc │ ├── bug01083.inc │ ├── bug01083.phpt │ ├── bug01084.inc │ ├── bug01084.phpt │ ├── bug01101.inc │ ├── bug01101.phpt │ ├── bug01104.inc │ ├── bug01104.phpt │ ├── bug01105-001.inc │ ├── bug01105-001.phpt │ ├── bug01105-002.inc │ ├── bug01105-002.phpt │ ├── bug01105-003.inc │ ├── bug01105-003.phpt │ ├── bug01111-001.inc │ ├── bug01111-001.phpt │ ├── bug01111-002.inc │ ├── bug01111-002.phpt │ ├── bug01165.inc │ ├── bug01165.phpt │ ├── bug01181.inc │ ├── bug01181.phpt │ ├── bug01202-001.phpt │ ├── bug01202-002.phpt │ ├── bug01202.inc │ ├── bug01203-001.phpt │ ├── bug01203-002.phpt │ ├── bug01218-002.phpt │ ├── bug01218.inc │ ├── bug01223.inc │ ├── bug01223.phpt │ ├── bug01272-001.phpt │ ├── bug01272.inc │ ├── bug01305.inc │ ├── bug01305.phpt │ ├── bug01312.inc │ ├── bug01312.phpt │ ├── bug01335-php80.phpt │ ├── bug01335-php81.phpt │ ├── bug01335.inc │ ├── bug01385.inc │ ├── bug01385.phpt │ ├── bug01388-01.inc │ ├── bug01388-01.phpt │ ├── bug01388-02.inc │ ├── bug01388-02.phpt │ ├── bug01388-03.inc │ ├── bug01388-03.phpt │ ├── bug01388-04.inc │ ├── bug01388-04.phpt │ ├── bug01388-05.inc │ ├── bug01388-05.phpt │ ├── bug01388-06.inc │ ├── bug01388-06.phpt │ ├── bug01388-07.inc │ ├── bug01388-07.phpt │ ├── bug01388-08.phpt │ ├── bug01388-08a.inc │ ├── bug01388-08b.inc │ ├── bug01388-09.inc │ ├── bug01388-09.phpt │ ├── bug01388-10.inc │ ├── bug01388-10.phpt │ ├── bug01388-11.phpt │ ├── bug01388-12.inc │ ├── bug01388-12.phpt │ ├── bug01388-13.inc │ ├── bug01388-13.phpt │ ├── bug01388-14-index.inc │ ├── bug01388-14-simpleclass.inc │ ├── bug01388-14.phpt │ ├── bug01388-15.inc │ ├── bug01388-15.phpt │ ├── bug01388-16.inc │ ├── bug01388-16.phpt │ ├── bug01388-17.inc │ ├── bug01388-17.phpt │ ├── bug01388-18.inc │ ├── bug01388-18.phpt │ ├── bug01388-19.inc │ ├── bug01388-19.phpt │ ├── bug01388-20.inc │ ├── bug01388-20.phpt │ ├── bug01388-21.phpt │ ├── bug01417.inc │ ├── bug01417.phpt │ ├── bug01449.inc │ ├── bug01449.phpt │ ├── bug01488.inc │ ├── bug01488.phpt │ ├── bug01512.inc │ ├── bug01512.phpt │ ├── bug01514.inc │ ├── bug01514.phpt │ ├── bug01515-002.phpt │ ├── bug01515.inc │ ├── bug01516.inc │ ├── bug01516.phpt │ ├── bug01520.inc │ ├── bug01520.phpt │ ├── bug01532.inc │ ├── bug01532.phpt │ ├── bug01551.inc │ ├── bug01551.phpt │ ├── bug01568.inc │ ├── bug01568.phpt │ ├── bug01586-php83.phpt │ ├── bug01586-php84.phpt │ ├── bug01586.inc │ ├── bug01647.inc │ ├── bug01647.phpt │ ├── bug01656.phpt │ ├── bug01660.phpt │ ├── bug01662.inc │ ├── bug01662.phpt │ ├── bug01682-001.phpt │ ├── bug01682-002.phpt │ ├── bug01682.inc │ ├── bug01708.inc │ ├── bug01708.phpt │ ├── bug01734.inc │ ├── bug01734.phpt │ ├── bug01735.inc │ ├── bug01735.phpt │ ├── bug01753-PageIndex.inc │ ├── bug01753-SkeletonPage.inc │ ├── bug01753.inc │ ├── bug01753.phpt │ ├── bug01782.phpt │ ├── bug01901.phpt │ ├── bug01915.phpt │ ├── bug01931-001.inc │ ├── bug01931-001.phpt │ ├── bug01931-002.inc │ ├── bug01931-002.phpt │ ├── bug01931-003.inc │ ├── bug01931-003.phpt │ ├── bug01949.inc │ ├── bug01949.phpt │ ├── bug01978.phpt │ ├── bug01989.inc │ ├── bug01989.phpt │ ├── bug01993.inc │ ├── bug01993.phpt │ ├── bug01996-001-php81.phpt │ ├── bug01996-001-php82.phpt │ ├── bug01996-001.inc │ ├── bug01996-002-php81.phpt │ ├── bug01996-002-php82.phpt │ ├── bug01996-002.inc │ ├── bug01998.inc │ ├── bug01998.phpt │ ├── bug01999.inc │ ├── bug01999.phpt │ ├── bug02006-001.phpt │ ├── bug02006-002.phpt │ ├── bug02006.inc │ ├── bug02011-php81.phpt │ ├── bug02011-php82.phpt │ ├── bug02011-php84.phpt │ ├── bug02011.inc │ ├── bug02025.inc │ ├── bug02025.phpt │ ├── bug02049.inc │ ├── bug02049.phpt │ ├── bug02053.inc │ ├── bug02053.phpt │ ├── bug02055.inc │ ├── bug02055.phpt │ ├── bug02063.inc │ ├── bug02063.phpt │ ├── bug02083.inc │ ├── bug02083.phpt │ ├── bug02090.inc │ ├── bug02090.phpt │ ├── bug02094-php81.phpt │ ├── bug02094-php82.phpt │ ├── bug02094-php84.phpt │ ├── bug02094.inc │ ├── bug02098-001.inc │ ├── bug02098-001.phpt │ ├── bug02098-002.inc │ ├── bug02098-002.phpt │ ├── bug02101.inc │ ├── bug02101.phpt │ ├── bug02113-001.inc │ ├── bug02113-001.phpt │ ├── bug02113-002.inc │ ├── bug02113-002.phpt │ ├── bug02121.inc │ ├── bug02121.phpt │ ├── bug02122.inc │ ├── bug02122.phpt │ ├── bug02123.inc │ ├── bug02123.phpt │ ├── bug02126.inc │ ├── bug02126.phpt │ ├── bug02170-array-iterator.inc │ ├── bug02170-array-iterator.phpt │ ├── bug02172-spl-datastructures.inc │ ├── bug02172-spl-datastructures.phpt │ ├── bug02180.inc │ ├── bug02180.phpt │ ├── bug02211-php82.phpt │ ├── bug02211-php84.phpt │ ├── bug02211.inc │ ├── bug02250.phpt │ ├── bug02251.phpt │ ├── bug02261-001.phpt │ ├── bug02261-002-win.phpt │ ├── bug02261-002.phpt │ ├── bug02305.phpt │ ├── bug02314-001.inc │ ├── bug02314-001.phpt │ ├── bug02314-002.inc │ ├── bug02314-002.phpt │ ├── bug02322.phpt │ ├── bug02326-php83.phpt │ ├── bug02326-php84.phpt │ ├── bug02326.inc │ ├── bug02326.xml │ ├── bug02331.inc │ ├── bug02331.phpt │ ├── bug02340.inc │ ├── bug02340.phpt │ ├── bug02343.inc │ ├── bug02343.phpt │ ├── bug02348.inc │ ├── bug02348.phpt │ ├── dbgp-breakpoint-call-function.inc │ ├── dbgp-breakpoint-call-function.phpt │ ├── dbgp-breakpoint-call-method.inc │ ├── dbgp-breakpoint-call-method.phpt │ ├── dbgp-breakpoint-error.inc │ ├── dbgp-breakpoint-error.phpt │ ├── dbgp-breakpoint-line-with-condition.inc │ ├── dbgp-breakpoint-line-with-condition.phpt │ ├── dbgp-breakpoint-line.inc │ ├── dbgp-breakpoint-line.phpt │ ├── dbgp-breakpoint-return-function-001.phpt │ ├── dbgp-breakpoint-return-function-002.phpt │ ├── dbgp-breakpoint-return-function-003.inc │ ├── dbgp-breakpoint-return-function-003.phpt │ ├── dbgp-breakpoint-return-function-004.phpt │ ├── dbgp-breakpoint-return-function-005.phpt │ ├── dbgp-breakpoint-return-function-006.inc │ ├── dbgp-breakpoint-return-function-006.phpt │ ├── dbgp-breakpoint-return-method.phpt │ ├── dbgp-context-get.inc │ ├── dbgp-context-get.phpt │ ├── dbgp-detach-fallback.phpt │ ├── dbgp-detach.inc │ ├── dbgp-detach.phpt │ ├── dbgp-feature-breakpoint-details.phpt │ ├── dbgp-property-enum.inc │ ├── dbgp-property-enum.phpt │ ├── dbgp-property-get-constants.phpt │ ├── dbgp-property-value.inc │ ├── dbgp-property-value.phpt │ ├── dbgp-virtual-exception-value-001.inc │ ├── dbgp-virtual-exception-value-001.phpt │ ├── dbgp-virtual-exception-value-002.inc │ ├── dbgp-virtual-exception-value-002.phpt │ ├── dbgp │ │ └── dbgpclient.php │ ├── empty-echo.inc │ ├── fiber-001.inc │ ├── fiber-001.phpt │ ├── fiber-002.inc │ ├── fiber-step-into-001.phpt │ ├── fiber-step-over-001.phpt │ ├── fiber-step-over-002.phpt │ ├── remote_log-unix-2.phpt │ ├── remote_log-unix.phpt │ ├── remote_log-win.phpt │ ├── remote_log1.phpt │ ├── remote_log2.phpt │ ├── remote_log3.phpt │ ├── remote_log4.phpt │ ├── remote_log5.phpt │ ├── spl-iterators.inc │ ├── start_ignore_0_env.phpt │ ├── start_ignore_no_cookie.phpt │ ├── start_ignore_no_env.phpt │ ├── start_ignore_no_get.phpt │ ├── start_ignore_no_post.phpt │ ├── start_ignore_yes_cookie.phpt │ ├── start_ignore_yes_env.phpt │ ├── start_ignore_yes_get.phpt │ ├── start_ignore_yes_post.phpt │ ├── start_upon_error_no_trigger_error.phpt │ ├── start_upon_error_trigger_error.phpt │ ├── start_with_request_always_break.phpt │ ├── start_with_request_always_config.phpt │ ├── start_with_request_always_no_env.phpt │ ├── start_with_request_always_session.phpt │ ├── start_with_request_always_session_start.phpt │ ├── start_with_request_default_break.phpt │ ├── start_with_request_default_break_session_start.phpt │ ├── start_with_request_default_config.phpt │ ├── start_with_request_default_no_env.phpt │ ├── start_with_request_default_session-001.phpt │ ├── start_with_request_default_session-002.phpt │ ├── start_with_request_default_session_start-001.phpt │ ├── start_with_request_default_session_start-002.phpt │ ├── start_with_request_never_break.phpt │ ├── start_with_request_never_break_session_start.phpt │ ├── start_with_request_never_config.phpt │ ├── start_with_request_never_no_env.phpt │ ├── start_with_request_never_session.phpt │ ├── start_with_request_never_session_start.phpt │ ├── start_with_request_trigger_break.phpt │ ├── start_with_request_trigger_break_session_start.phpt │ ├── start_with_request_trigger_config.phpt │ ├── start_with_request_trigger_match-001.phpt │ ├── start_with_request_trigger_match-002.phpt │ ├── start_with_request_trigger_match-003.phpt │ ├── start_with_request_trigger_match-004.phpt │ ├── start_with_request_trigger_match-005.phpt │ ├── start_with_request_trigger_match-006.phpt │ ├── start_with_request_trigger_match-007.phpt │ ├── start_with_request_trigger_match-008.phpt │ ├── start_with_request_trigger_match-009.phpt │ ├── start_with_request_trigger_match-010.phpt │ ├── start_with_request_trigger_no_env.phpt │ ├── start_with_request_trigger_session-001.phpt │ ├── start_with_request_trigger_session-002.phpt │ ├── start_with_request_trigger_session_start-001.phpt │ ├── start_with_request_trigger_session_start-002.phpt │ ├── start_with_request_trigger_session_start_and_session-001.phpt │ ├── start_with_request_trigger_session_start_and_session-002.phpt │ ├── start_with_request_trigger_session_start_shared_secret-001.phpt │ ├── xdebug_connect_to_client.inc │ ├── xdebug_connect_to_client.phpt │ ├── xdebug_notify-001.phpt │ ├── xdebug_notify-002.phpt │ ├── xdebug_notify-003.phpt │ ├── xdebug_notify-004.phpt │ ├── xdebug_notify.inc │ └── xdebug_notify_complex.inc ├── develop │ ├── backtrace-args.phpt │ ├── backtrace-complex.phpt │ ├── backtrace-simple.phpt │ ├── bug00022.phpt │ ├── bug00032.phpt │ ├── bug00057.phpt │ ├── bug00089.phpt │ ├── bug00176.phpt │ ├── bug00178.phpt │ ├── bug00265.phpt │ ├── bug00280.phpt │ ├── bug00298.phpt │ ├── bug00305.phpt │ ├── bug00314-win.phpt │ ├── bug00314.phpt │ ├── bug00315.phpt │ ├── bug00328-php80.phpt │ ├── bug00328-php81.phpt │ ├── bug00340-001.phpt │ ├── bug00340-002.phpt │ ├── bug00389.phpt │ ├── bug00391.phpt │ ├── bug00450-001.phpt │ ├── bug00450-002.phpt │ ├── bug00450-003.phpt │ ├── bug00457-001.phpt │ ├── bug00457-002.phpt │ ├── bug00476-001.phpt │ ├── bug00476-002.phpt │ ├── bug00476-003.phpt │ ├── bug00476-004.phpt │ ├── bug00538-002.phpt │ ├── bug00565.phpt │ ├── bug00567-noopcache.phpt │ ├── bug00567-opcache.phpt │ ├── bug00570.phpt │ ├── bug00575.phpt │ ├── bug00609.phpt │ ├── bug00625-001.phpt │ ├── bug00625-002.phpt │ ├── bug00635.phpt │ ├── bug00654.phpt │ ├── bug00684.phpt │ ├── bug00709.phpt │ ├── bug00744.phpt │ ├── bug00747.phpt │ ├── bug00800.phpt │ ├── bug00811.phpt │ ├── bug00885.phpt │ ├── bug00898.phpt │ ├── bug00903.phpt │ ├── bug00947-001.phpt │ ├── bug00947-002.phpt │ ├── bug00987-001.phpt │ ├── bug00987-002.phpt │ ├── bug00987-003.phpt │ ├── bug00987-006.phpt │ ├── bug01004-001.phpt │ ├── bug01004-002.phpt │ ├── bug01106.phpt │ ├── bug01130.phpt │ ├── bug01166.phpt │ ├── bug01174.phpt │ ├── bug01194.phpt │ ├── bug01218-001.phpt │ ├── bug01218.inc │ ├── bug01245.phpt │ ├── bug01247-opcache.phpt │ ├── bug01262.phpt │ ├── bug01282-32bit.phpt │ ├── bug01282-64bit.phpt │ ├── bug01288.phpt │ ├── bug01323-001.phpt │ ├── bug01343-32bit.phpt │ ├── bug01343-64bit.phpt │ ├── bug01501-001-32bit.phpt │ ├── bug01501-001-64bit.phpt │ ├── bug01501-002-32bit.phpt │ ├── bug01501-002-64bit.phpt │ ├── bug01501-003-32bit.phpt │ ├── bug01501-003-64bit.phpt │ ├── bug01534.phpt │ ├── bug01562-noopcache.phpt │ ├── bug01562-opcache.phpt │ ├── bug01613-001.phpt │ ├── bug01613-002.phpt │ ├── bug01665.phpt │ ├── bug01837-002.phpt │ ├── bug01837-003.phpt │ ├── bug01996-001-ansi-php81.phpt │ ├── bug01996-001-ansi-php82.phpt │ ├── bug01996-001-html-php81.phpt │ ├── bug01996-001-html-php82.phpt │ ├── bug01996-001-text-php81.phpt │ ├── bug01996-001-text-php82.phpt │ ├── bug01996-002-ansi-php81.phpt │ ├── bug01996-002-ansi-php82.phpt │ ├── bug01996-002-html-php81.phpt │ ├── bug01996-002-html-php82.phpt │ ├── bug01996-002-text-php81.phpt │ ├── bug01996-002-text-php82.phpt │ ├── bug01999-ansi.phpt │ ├── bug01999-html.phpt │ ├── bug01999-text.phpt │ ├── bug02041.phpt │ ├── bug02104-001.phpt │ ├── bug02104-002.phpt │ ├── bug02121.phpt │ ├── bug02182.phpt │ ├── bug02186.phpt │ ├── bug02194-exception-warning.phpt │ ├── bug02194-noopcache.phpt │ ├── bug02195-exception-noopcache.phpt │ ├── bug02195-exception-opcache.phpt │ ├── bug02208.phpt │ ├── bug02226-exceptions.phpt │ ├── bug02264.phpt │ ├── dump-superglobal.phpt │ ├── error_collection-001.phpt │ ├── error_collection-002.phpt │ ├── error_collection-003.phpt │ ├── errorlog_variadic.phpt │ ├── exception.phpt │ ├── force_display_errors.phpt │ ├── force_error_reporting-display_errors-001.phpt │ ├── force_error_reporting-display_errors-002.phpt │ ├── force_error_reporting-display_errors-003.phpt │ ├── force_error_reporting-log_errors-001.phpt │ ├── force_error_reporting-log_errors-002.phpt │ ├── force_error_reporting-log_errors-003.phpt │ ├── local_vars_in_error.phpt │ ├── max_nesting_level-001.phpt │ ├── max_nesting_level-002.phpt │ ├── max_nesting_level-003.phpt │ ├── max_stack_frames.phpt │ ├── monitor-functions-001.phpt │ ├── monitor-functions-002.phpt │ ├── monitor-functions-003.inc │ ├── monitor-functions-003.phpt │ ├── monitor-functions-004.phpt │ ├── print_function_stack-no-description-001.phpt │ ├── print_function_stack-no-description-002.phpt │ ├── print_function_stack-no-description-003.phpt │ ├── print_function_stack.phpt │ ├── scream.phpt │ ├── scream_cli.phpt │ ├── scream_html.phpt │ ├── shutdown.phpt │ ├── stack-filter-ns-exclude-001.phpt │ ├── stack-filter-ns-include-001.phpt │ ├── stack-filter-path-exclude-001.phpt │ ├── stack-filter-path-include-001.phpt │ ├── stacktrace_html.phpt │ ├── stacktrace_text.phpt │ ├── stacktrace_variadic_html.phpt │ ├── stacktrace_variadic_text.phpt │ ├── vardump-overload-cli-001.phpt │ ├── vardump-overload-cli-002.phpt │ ├── xdebug_call.phpt │ ├── xdebug_call_depth-1.phpt │ ├── xdebug_call_depth0.phpt │ ├── xdebug_call_depth1.phpt │ ├── xdebug_call_depth2.phpt │ ├── xdebug_call_depth3.phpt │ ├── xdebug_debug_zval-noopcache.phpt │ ├── xdebug_debug_zval-opcache.phpt │ ├── xdebug_debug_zval_cli_color-noopcache-nts.phpt │ ├── xdebug_debug_zval_cli_color-noopcache-zts.phpt │ ├── xdebug_debug_zval_cli_color-opcache.phpt │ ├── xdebug_debug_zval_stdout-noopcache.phpt │ ├── xdebug_debug_zval_stdout-opcache.phpt │ ├── xdebug_get_function_stack_exception_handler.phpt │ ├── xdebug_get_function_stack_local_vars.phpt │ ├── xdebug_get_function_stack_variadic.phpt │ ├── xdebug_time_index.phpt │ ├── xdebug_var_dump.phpt │ ├── xdebug_var_dump_datetime.phpt │ ├── xdebug_var_dump_enum-ansi.phpt │ ├── xdebug_var_dump_enum-html.phpt │ ├── xdebug_var_dump_enum-text.phpt │ ├── xdebug_var_dump_file.phpt │ ├── xdebug_var_dump_file_link.phpt │ ├── xdebug_var_dump_fileformat-ansi.phpt │ ├── xdebug_var_dump_fileformat-html.phpt │ ├── xdebug_var_dump_fileformat-text.phpt │ ├── xdebug_var_dump_limitations.phpt │ ├── xdebug_var_dump_limitations_cli.phpt │ ├── xdebug_var_dump_non_overload.phpt │ ├── xdebug_var_dump_typed_properties-ansi.phpt │ ├── xdebug_var_dump_typed_properties-html.phpt │ └── xdebug_var_dump_typed_properties-text.phpt ├── filter │ ├── bug01508-exclude.phpt │ ├── bug01508-include.phpt │ ├── bug01508.php │ ├── bug01919-001.phpt │ ├── bug01919-002.phpt │ ├── foobar │ │ └── foobar.php │ ├── stack │ │ ├── one.php │ │ ├── three.php │ │ └── two.php │ └── xdebug │ │ ├── trace │ │ └── xdebug.php │ │ └── xdebug.php ├── gcstats │ ├── bug01928.phpt │ ├── xdebug_gc_stats-001.phpt │ ├── xdebug_gc_stats-002.phpt │ ├── xdebug_gc_stats-003.phpt │ ├── xdebug_gc_stats-004.phpt │ ├── xdebug_gc_stats-005.phpt │ ├── xdebug_gc_stats-006.phpt │ ├── xdebug_gc_stats-007.phpt │ ├── xdebug_gc_stats-008.phpt │ ├── xdebug_gc_stats-009.phpt │ └── xdebug_gc_stats-010.phpt ├── library │ ├── xdebug_constants.phpt │ ├── xdebug_info-mode-001.phpt │ ├── xdebug_info-mode-002.phpt │ ├── xdebug_info-mode-003.phpt │ ├── xdebug_info-mode-004.phpt │ ├── xdebug_info-mode-005.phpt │ ├── xdebug_mode_from_env-001.phpt │ ├── xdebug_mode_from_env-002.phpt │ ├── xdebug_mode_warning-001.phpt │ └── xdebug_mode_warning-002.phpt ├── profiler │ ├── bug00360-php83.phpt │ ├── bug00360-php84.phpt │ ├── bug00631-php83.phpt │ ├── bug00631-php84.phpt │ ├── bug00639-php83.phpt │ ├── bug00639-php84.phpt │ ├── bug00639.inc │ ├── bug00643-php83.phpt │ ├── bug00643-php84.phpt │ ├── bug00643-t1.inc │ ├── bug00643-t2.inc │ ├── bug00693.phpt │ ├── bug00714-php83.phpt │ ├── bug00714-php84.phpt │ ├── bug00728-php83.phpt │ ├── bug00728-php84.phpt │ ├── bug00785-001-php83.phpt │ ├── bug00785-001-php84.phpt │ ├── bug00785-001.inc │ ├── bug00785-002-php83.phpt │ ├── bug00785-002-php84.phpt │ ├── bug00785-002.inc │ ├── bug01437.phpt │ ├── bug01571-002-php82.phpt │ ├── bug01571-002-php84.phpt │ ├── bug01571-002.inc │ ├── bug01589-append.inc │ ├── bug01589-php83.phpt │ ├── bug01589-php84.phpt │ ├── bug01589-prepend.inc │ ├── bug01989-php83.phpt │ ├── bug01989-php84.phpt │ ├── bug01989.inc │ ├── bug02001-no-zlib-compression.phpt │ ├── bug02001-no-zlib-no-compression.phpt │ ├── bug02001-zlib-compression.phpt │ ├── bug02001-zlib-no-compression.phpt │ ├── bug02037.phpt │ ├── bug02069-zlib-compression-append.phpt │ ├── capture-profile.inc │ ├── start_with_request_always_no_env.phpt │ ├── start_with_request_always_no_match.phpt │ ├── start_with_request_default_no_env.phpt │ ├── start_with_request_default_no_match.phpt │ ├── start_with_request_never_match.phpt │ ├── start_with_request_never_no_env.phpt │ ├── start_with_request_trigger_env-001.phpt │ ├── start_with_request_trigger_env-002.phpt │ ├── start_with_request_trigger_match-001.phpt │ ├── start_with_request_trigger_match-002.phpt │ ├── start_with_request_trigger_no_env.phpt │ └── start_with_request_trigger_no_match.phpt ├── tracing │ ├── array_map.phpt │ ├── assert_test-001-php83.phpt │ ├── assert_test-002-php83.phpt │ ├── assert_test-003-php83.phpt │ ├── assert_test-004-php83.phpt │ ├── assignment-trace-001.phpt │ ├── assignment-trace-002.phpt │ ├── assignment-trace-003.phpt │ ├── assignment-trace-004.phpt │ ├── assignment-trace-005.phpt │ ├── assignment-trace-006.phpt │ ├── assignment-trace-007.phpt │ ├── assignment-trace-008.phpt │ ├── assignment-trace-009.phpt │ ├── assignment-trace-010.phpt │ ├── assignment-trace-011.phpt │ ├── assignment-trace-dim-op.phpt │ ├── assignment-trace-obj-op-001.phpt │ ├── assignment-trace-obj-op-002.phpt │ ├── assignment-trace-obj-op-003.phpt │ ├── assignment-trace-op.phpt │ ├── assignment-trace-static-prop-op-001.phpt │ ├── assignment-trace-static-prop-op-002.phpt │ ├── assignment-trace-this-op-001.phpt │ ├── assignment-trace-this-op-002.phpt │ ├── bug00002.inc │ ├── bug00002.phpt │ ├── bug00003.phpt │ ├── bug00146.phpt │ ├── bug00173.phpt │ ├── bug00184.phpt │ ├── bug00355.phpt │ ├── bug00501.phpt │ ├── bug00558-002.phpt │ ├── bug00566-001.phpt │ ├── bug00642.phpt │ ├── bug00690-001.phpt │ ├── bug00690-002.phpt │ ├── bug00699.inc │ ├── bug00699.phpt │ ├── bug00701.phpt │ ├── bug00702-001.phpt │ ├── bug00702-002.phpt │ ├── bug00756.phpt │ ├── bug00799.phpt │ ├── bug00843-001.phpt │ ├── bug00843-002.phpt │ ├── bug00847-001.phpt │ ├── bug00847-002.phpt │ ├── bug00905.phpt │ ├── bug01073.phpt │ ├── bug01112.phpt │ ├── bug01140.phpt │ ├── bug01209.phpt │ ├── bug01215.phpt │ ├── bug01471.phpt │ ├── bug01571-001-php81.phpt │ ├── bug01571-001-php82.phpt │ ├── bug01571-001-php84.phpt │ ├── bug01599-001.phpt │ ├── bug01599-002.phpt │ ├── bug01676.phpt │ ├── bug01739.phpt │ ├── bug01829.phpt │ ├── bug01837-001.phpt │ ├── bug01837-004.phpt │ ├── bug01875-001.phpt │ ├── bug01875-002.phpt │ ├── bug01896-php81.phpt │ ├── bug01896-php82.phpt │ ├── bug01903-001.phpt │ ├── bug01903-002.phpt │ ├── bug01927.phpt │ ├── bug01944.phpt │ ├── bug01950.phpt │ ├── bug01954.phpt │ ├── bug01996-001-php81.phpt │ ├── bug01996-001-php82.phpt │ ├── bug01996-002-php81.phpt │ ├── bug01996-002-php82.phpt │ ├── bug01999.phpt │ ├── bug02054.phpt │ ├── bug02104-001.phpt │ ├── bug02104-002.phpt │ ├── bug02127-001-php81.phpt │ ├── bug02127-001-php82.phpt │ ├── bug02127-001-php84.phpt │ ├── bug02127-002-php81.phpt │ ├── bug02127-002-php82.phpt │ ├── bug02127-002-php84.phpt │ ├── bug02214-001.phpt │ ├── bug02214-002.phpt │ ├── bug02214.inc │ ├── call_user_func_array-001.phpt │ ├── call_user_func_array-002.inc │ ├── call_user_func_array-002.phpt │ ├── capture-trace.inc │ ├── circular-references.phpt │ ├── comp-without-params.phpt │ ├── complex-parameters.phpt │ ├── fiber-001.inc │ ├── flamegraph-001.phpt │ ├── flamegraph-002.phpt │ ├── flamegraph-003.phpt │ ├── flamegraph-004.phpt │ ├── flamegraph-005.phpt │ ├── function_counter.phpt │ ├── functrace_comp.phpt │ ├── functrace_comp_assign.phpt │ ├── functrace_comp_r.phpt │ ├── functrace_typed_properties.phpt │ ├── functrace_variadics.phpt │ ├── include-file.phpt │ ├── internal-parameters.phpt │ ├── nested-function-calls.phpt │ ├── nested-indirect-function.phpt │ ├── nested-static-method-calls.phpt │ ├── start_no_zlib_compression.phpt │ ├── start_no_zlib_no_compression.phpt │ ├── start_trace.phpt │ ├── start_with_request_always_no_env.phpt │ ├── start_with_request_always_no_match.phpt │ ├── start_with_request_default_env-001.phpt │ ├── start_with_request_default_env-002.phpt │ ├── start_with_request_default_function_call.phpt │ ├── start_with_request_default_match-001.phpt │ ├── start_with_request_default_match-002.phpt │ ├── start_with_request_default_no_env.phpt │ ├── start_with_request_never_match.phpt │ ├── start_with_request_never_no_env.phpt │ ├── start_with_request_trigger_env-001.phpt │ ├── start_with_request_trigger_env-002.phpt │ ├── start_with_request_trigger_match-001.phpt │ ├── start_with_request_trigger_match-002.phpt │ ├── start_with_request_trigger_no_env.phpt │ ├── start_with_request_trigger_no_match.phpt │ ├── start_zlib_compression.phpt │ ├── start_zlib_no_compression.phpt │ ├── static-method-calls.phpt │ ├── test11.phpt │ ├── test15.phpt │ ├── test18.phpt │ ├── test18a.phpt │ ├── test18b.phpt │ ├── test7b.phpt │ ├── test_class.inc │ ├── text-without-params.phpt │ ├── trace-001.phpt │ ├── trace-002.phpt │ ├── trace-003.phpt │ ├── trace-filter-ns-exclude-001.phpt │ ├── trace-filter-ns-exclude-002.phpt │ ├── trace-filter-ns-exclude-003.phpt │ ├── trace-filter-ns-include-001.phpt │ ├── trace-filter-ns-include-002.phpt │ ├── trace-filter-ns-include-003.phpt │ ├── trace-filter-ns-include-004.phpt │ ├── trace-filter-path-exclude-001.phpt │ ├── trace-filter-path-include-001.phpt │ ├── trace-filter-path-include-002.phpt │ ├── trace-filter-path-include-003.phpt │ ├── trace-filter-path-include-004.phpt │ ├── trace_enum-001.phpt │ ├── trace_enum-002.phpt │ ├── trace_with_magic_call_method.phpt │ ├── trace_with_magic_call_method_and_contents.phpt │ ├── trace_with_magic_methods.phpt │ ├── trace_with_naked_filename.phpt │ └── variable-functions.phpt └── utils.inc ├── xdebug.c └── xdebug.ini /.azure/install.yml: -------------------------------------------------------------------------------- 1 | steps: 2 | - script: | 3 | set -e 4 | sudo make install 5 | sudo mkdir /etc/php.d 6 | sudo chmod 777 /etc/php.d 7 | echo mysqli.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/mysqli.ini 8 | echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini 9 | echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini 10 | echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini 11 | displayName: 'Install Build' 12 | -------------------------------------------------------------------------------- /.azure/macos/brew.yml: -------------------------------------------------------------------------------- 1 | parameters: 2 | packages: '' 3 | 4 | steps: 5 | - script: brew update 6 | displayName: 'Update Homebrew' 7 | - script: | 8 | brew install pkg-config \ 9 | autoconf \ 10 | bison \ 11 | re2c 12 | displayName: 'Install Build Tools' 13 | - script: | 14 | brew install openssl@1.1 zlib 15 | displayName: 'Install Build Dependencies' 16 | -------------------------------------------------------------------------------- /.azure/setup.yml: -------------------------------------------------------------------------------- 1 | steps: 2 | - script: | 3 | set -e 4 | sudo service mysql start 5 | sudo service postgresql start 6 | sudo service slapd start 7 | mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test" 8 | sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';" 9 | sudo -u postgres psql -c "CREATE DATABASE test;" 10 | displayName: 'Setup' 11 | - script: ./azure/setup-slapd.sh 12 | displayName: 'Configure slapd' 13 | 14 | -------------------------------------------------------------------------------- /.build.scripts/compile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | phpize 3 | ./configure --enable-xdebug-dev $@ 4 | make all 5 | 6 | -------------------------------------------------------------------------------- /.build.scripts/show-errors.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for i in tests/*.diff tests/*/*.diff; do 4 | echo "==========================================================================" 5 | echo $i 6 | echo "--------------------------------------------------------------------------" 7 | cat $i 8 | echo "==========================================================================" 9 | echo 10 | done 11 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | /tests/debugger/bug00627-symlink.inc -text -filter 2 | /tests/develop/bug00744.phpt -text -filter 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | patreon: derickr 2 | github: derickr 3 | custom: https://xdebug.org/support 4 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | updates: 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "monthly" 8 | -------------------------------------------------------------------------------- /.xdebugci/build-nightly-php.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | # Figuring out where we are 4 | SOURCE="${BASH_SOURCE[0]}" 5 | while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink 6 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )" 7 | SOURCE="$(readlink "$SOURCE")" 8 | [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located 9 | done 10 | DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )" 11 | 12 | cd ${DIR}/.. 13 | 14 | PATH=/usr/local/php/8.2.19/bin:$PATH 15 | 16 | PHP_DIR=/tmp/php-build/workspace/install .xdebugci/test-all.sh '^master|^8.*dev' 17 | -------------------------------------------------------------------------------- /CREDITS: -------------------------------------------------------------------------------- 1 | Xdebug 2 | Derick Rethans, Ilia Alshanetsky, Harald Radi 3 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xdebug/xdebug", 3 | "type": "php-ext-zend", 4 | "license": "Xdebug-1.03", 5 | "description": "Xdebug is a debugging and productivity extension for PHP", 6 | "require": { 7 | "php": ">=8.0,<8.6" 8 | }, 9 | "php-ext": { 10 | "priority": 90, 11 | "configure-options": [] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /rebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ ! -f "config.m4" ]]; then 4 | echo "There is no config.m4 file in this directory" 5 | exit; 6 | fi 7 | 8 | if [[ -f "configure.in" ]]; then 9 | rm configure.in 10 | fi 11 | if [[ -f "configure.ac" ]]; then 12 | rm configure.ac 13 | fi 14 | if [[ -d "autom4te.cache" ]]; then 15 | rm -rf autom4te.cache 16 | fi 17 | 18 | bit64=`php -n -r 'echo PHP_INT_SIZE == 8 ? "1" : "0";'` 19 | if [[ ${bit64} != "1" ]]; then 20 | export CFLAGS="-m32" 21 | fi 22 | phpize && ./configure --enable-xdebug-dev && make clean && make all && make install 23 | -------------------------------------------------------------------------------- /template.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/derickr/xdebug/da48740ebc113ed5d2f6a2e43bddc8564579941e/template.rc -------------------------------------------------------------------------------- /tests/base/001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Check for xdebug presence 3 | --FILE-- 4 | 7 | --EXPECT-- 8 | xdebug extension is available 9 | -------------------------------------------------------------------------------- /tests/base/bug00001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for crash with a destructor 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.auto_profile=0 6 | --FILE-- 7 | 18 | --EXPECT-- 19 | I'm alive! 20 | destructor! 21 | -------------------------------------------------------------------------------- /tests/base/bug00419-sunos.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #419: make use of P_tmpdir if defined instead of hardcoded '/tmp' 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | 12 | --EXPECT-- 13 | /var/tmp/ 14 | -------------------------------------------------------------------------------- /tests/base/bug00419.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #419: make use of P_tmpdir if defined instead of hardcoded '/tmp' 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | 12 | --EXPECT-- 13 | /tmp 14 | -------------------------------------------------------------------------------- /tests/base/bug00538.inc: -------------------------------------------------------------------------------- 1 | 8 | DONE 9 | --EXPECT-- 10 | foo 11 | DONE 12 | -------------------------------------------------------------------------------- /tests/base/bug00723.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #723: xdebug is stricter than PHP regarding Exception property types 3 | --INI-- 4 | html_errors=0 5 | display_errors=1 6 | error_reporting=-1 7 | --FILE-- 8 | line = "42"; // this triggers it. if it's before the constructor, PHP freaks out regardless of xdebug 13 | } 14 | } 15 | 16 | try { 17 | throw new MyException('test'); 18 | } catch (Exception $ex) { 19 | } 20 | 21 | echo "survived"; 22 | ?> 23 | --EXPECTF-- 24 | survived 25 | -------------------------------------------------------------------------------- /tests/base/bug00787.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #787: Segmentation Fault with PHP header_remove() 3 | --FILE-- 4 | 10 | --EXPECT-- 11 | string(13) "'hello world'" 12 | -------------------------------------------------------------------------------- /tests/base/bug00931.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #931: Crash with exception in shut-down stage 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=off 10 | --FILE-- 11 | 16 | --EXPECTF-- 17 | DONE 18 | Fatal error: Uncaught%sSerialization of 'Closure' is not allowed%sin [no active file]:0 19 | Stack trace: 20 | #0 {main} 21 | thrown in [no active file] on line 0 22 | -------------------------------------------------------------------------------- /tests/base/bug00978-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #978: Inspection of array with negative keys fails 3 | --FILE-- 4 | 12 | --EXPECTF-- 13 | 4 14 | $a: (%s, is_ref=0)=array (0 => (%s, is_ref=0)='nul', -1 => (%s, is_ref=0)='minus one', -2 => (%s, is_ref=0)='not two', 1 => (%s, is_ref=0)='een') 15 | $a[-1]: (%s, is_ref=0)='minus one' 16 | $a[-]: no such symbol 17 | $a[1]: (%s, is_ref=0)='een' 18 | -------------------------------------------------------------------------------- /tests/base/bug00978.inc: -------------------------------------------------------------------------------- 1 | 'nul', 4 | -1 => 'minus one', 5 | -2 => 'not two', 6 | 1 => 'een', 7 | ); 8 | echo count($a), "\n"; 9 | ?> 10 | -------------------------------------------------------------------------------- /tests/base/bug01048-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1048: Can not get $GLOBAL variable by property_value on function context 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | 15 | --EXPECTF-- 16 | 11$GLOBALS['cache']: (%s, is_ref=0)='cache' 17 | $GLOBALS['cache']: (%s, is_ref=0)='cache' 18 | -------------------------------------------------------------------------------- /tests/base/bug01048.inc: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/base/bug01133.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1133: PDO exception code value type is changed 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 14 | $pdo->query("INSERT INTO fake_table VALUES ('bogus')"); 15 | } catch (PDOException $e) { 16 | var_dump($e->getCode()); 17 | var_dump($e->getMessage()); 18 | } 19 | ?> 20 | --EXPECT-- 21 | string(5) "HY000" 22 | string(59) "SQLSTATE[HY000]: General error: 1 no such table: fake_table" 23 | -------------------------------------------------------------------------------- /tests/base/bug01148.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1148: Can't disable max_nesting_function 3 | --INI-- 4 | xdebug.max_nesting_level=-1 5 | --FILE-- 6 | 9 | --EXPECT-- 10 | 5 11 | -------------------------------------------------------------------------------- /tests/base/bug01266.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1266: xdebug_dump_superglobals() always dumps empty $_SESSION stack on PHP 7 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.dump.SESSION=* 10 | --FILE-- 11 | 17 | --EXPECT-- 18 | Dump $_SESSION 19 | $_SESSION['foo'] = 'bar' 20 | -------------------------------------------------------------------------------- /tests/base/bug01272.inc: -------------------------------------------------------------------------------- 1 | "; 4 | 5 | $e = new SimpleXmlElement($xml); 6 | 7 | foreach($e->b as $b) { // breakpoint here 8 | echo $b['attb'].PHP_EOL; 9 | } 10 | ?> 11 | -------------------------------------------------------------------------------- /tests/base/bug01515.inc: -------------------------------------------------------------------------------- 1 | $name = 42; 5 | 6 | echo "We're here\n"; 7 | ?> 8 | -------------------------------------------------------------------------------- /tests/base/bug01556.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1556: Crash when register_shutdown_function() is called with a function named call_user_func* 3 | --FILE-- 4 | 13 | ==DONE== 14 | --EXPECTF-- 15 | ==DONE== 16 | in call_user_funca 17 | -------------------------------------------------------------------------------- /tests/base/bug01583.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1583: Xdebug crashes when OPcache's compact literals optimisation is on 3 | --SKIPIF-- 4 | 8 | --FILE-- 9 | shutdown(); } 13 | public function shutdown($how=STREAM_SHUT_RDWR) { } 14 | } 15 | 16 | function get_it() 17 | { 18 | return false; 19 | 20 | } 21 | 22 | $x = new Foo(); 23 | $x->shutdown(); 24 | echo json_encode(['x'=>get_it()]); 25 | ?> 26 | --EXPECT-- 27 | {"x":false} 28 | -------------------------------------------------------------------------------- /tests/base/bug01758.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1758: Xdebug changes error_get_last results inside a try catch 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 16 | --EXPECTF-- 17 | %sbug01758.php:%d: 18 | NULL 19 | -------------------------------------------------------------------------------- /tests/base/bug01907.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1907: Empty exception message when setting the $message property to a stringable object 3 | --FILE-- 4 | message = new class() { 13 | public function __toString() 14 | { 15 | return 'World'; 16 | } 17 | }; 18 | } 19 | } 20 | 21 | $e = new LazyException(); 22 | 23 | try { 24 | throw $e; 25 | } catch (\Exception $e) { 26 | echo 'Hello '; 27 | echo $e->getMessage(); 28 | echo "\n"; 29 | } 30 | ?> 31 | --EXPECT-- 32 | Hello World 33 | -------------------------------------------------------------------------------- /tests/base/bug02020.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2020: segfault if xdebug.dump.GET=* and integer key without value in URL 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.dump.GET=* 10 | xdebug.mode=develop 11 | --GET-- 12 | 1 13 | --FILE-- 14 | 17 | --EXPECTF-- 18 | Fatal error: Uncaught Exception: OOPS in %sbug02020.php on line 2 19 | 20 | Exception: OOPS in %sbug02020.php on line 2 21 | 22 | Call Stack: 23 | %w%f %w%d 1. {main}() %sbug02020.php:0 24 | 25 | Dump $_GET 26 | $_GET[1] = '' 27 | -------------------------------------------------------------------------------- /tests/base/bug02034.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2034: Segmentation fault when 'set_time_limit' function is disabled 3 | --INI-- 4 | disable_functions=set_time_limit 5 | xdebug.mode=debug,develop 6 | --FILE-- 7 | 10 | --EXPECT-- 11 | Hello 12 | -------------------------------------------------------------------------------- /tests/base/bug02100.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2100: Exceptions in __debugInfo() can cause issues 3 | --FILE-- 4 | throw(new test); 22 | } catch (Exception $e) { 23 | echo 'All is well'; 24 | } 25 | ?> 26 | --EXPECT-- 27 | All is well 28 | -------------------------------------------------------------------------------- /tests/base/bug02307-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2307: Segmentation fault due to a superglobal being a reference [1] 3 | --INI-- 4 | xdebug.mode=develop,trace 5 | --FILE-- 6 | 11 | --EXPECT-- 12 | blashutdown 13 | -------------------------------------------------------------------------------- /tests/base/bug02307-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2307: Segmentation fault due to a superglobal being a reference [2] 3 | --INI-- 4 | xdebug.mode=develop,trace 5 | --FILE-- 6 | 16 | --EXPECTF-- 17 | bla 18 | Warning: require_once(_non_existing_file): Failed to open stream: No such file or directory in %sbug02307-002.php on line %d 19 | %A 20 | 1 21 | -------------------------------------------------------------------------------- /tests/base/bug02307-003.inc: -------------------------------------------------------------------------------- 1 | 14 | --EXPECT-- 15 | fasel 16 | -------------------------------------------------------------------------------- /tests/base/bug02319.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2319: Emojis are not handled correctly in xdebug's var_dumps 3 | --INI-- 4 | xdebug.mode=develop 5 | html_errors=1 6 | --FILE-- 7 | 11 | --EXPECTF-- 12 |
13 | %sbug02319.php:3:string 'hello 👍' (length=10) 14 |15 | -------------------------------------------------------------------------------- /tests/base/bug02321-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2321: Seg fault when null is assigned to $_POST 3 | --INI-- 4 | xdebug.mode=develop,trace 5 | --FILE-- 6 | 16 | --EXPECTF-- 17 | bla 18 | Warning: require_once(_non_existing_file): Failed to open stream: No such file or directory in %sbug02321-001.php on line %d 19 | %A 20 | 1 21 | -------------------------------------------------------------------------------- /tests/base/bug02321-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2321: Seg fault when null is assigned to $_GET 3 | --INI-- 4 | xdebug.mode=develop,trace 5 | --FILE-- 6 | 16 | --EXPECTF-- 17 | bla 18 | Warning: require_once(_non_existing_file): Failed to open stream: No such file or directory in %sbug02321-002.php on line %d 19 | %A 20 | 1 21 | -------------------------------------------------------------------------------- /tests/base/bug02321-003.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2321: Seg fault when null is assigned to $_COOKIE 3 | --INI-- 4 | xdebug.mode=develop,trace 5 | --FILE-- 6 | 16 | --EXPECTF-- 17 | bla 18 | Warning: require_once(_non_existing_file): Failed to open stream: No such file or directory in %sbug02321-003.php on line %d 19 | %A 20 | 1 21 | -------------------------------------------------------------------------------- /tests/base/bug02321-004.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2321: Seg fault when null is assigned to $_ENV 3 | --INI-- 4 | xdebug.mode=develop,trace 5 | --FILE-- 6 | 16 | --EXPECTF-- 17 | bla 18 | Warning: require_once(_non_existing_file): Failed to open stream: No such file or directory in %sbug02321-004.php on line %d 19 | %A 20 | 1 21 | -------------------------------------------------------------------------------- /tests/base/deprecated-setting-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for changed setting with E_DEPRECATED 3 | --INI-- 4 | xdebug.remote_mode=req 5 | error_reporting=E_DEPRECATED 6 | --FILE-- 7 | 10 | --EXPECTF-- 11 | Xdebug: [Config] The setting 'xdebug.remote_mode' has been renamed, see the upgrading guide at %s/upgrade_guide#changed-xdebug.remote_mode (See: %s/errors#CFG-C-CHANGED) 12 | Hello! 13 | -------------------------------------------------------------------------------- /tests/base/deprecated-setting-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for changed/removed setting without E_DEPRECATED 3 | --INI-- 4 | xdebug.remote_mode=req 5 | xdebug.remote_handler=dbgp 6 | error_reporting=E_ALL & ~E_DEPRECATED 7 | --FILE-- 8 | 11 | --EXPECT-- 12 | Hello! 13 | -------------------------------------------------------------------------------- /tests/base/deprecated-setting-003.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for removed setting with E_DEPRECATED 3 | --INI-- 4 | xdebug.show_mem_delta=1 5 | error_reporting=E_DEPRECATED 6 | --FILE-- 7 | 10 | --EXPECTF-- 11 | Xdebug: [Config] The setting 'xdebug.show_mem_delta' has been removed, see the upgrading guide at %s/upgrade_guide#changed-xdebug.show_mem_delta (See: %s/errors#CFG-C-REMOVED) 12 | Hello! 13 | -------------------------------------------------------------------------------- /tests/coverage/bug00212-001.inc: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /tests/coverage/bug00212-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #212: coverage coverage inaccurate (1) 3 | --INI-- 4 | xdebug.mode=coverage 5 | xdebug.trace_options=0 6 | xdebug.collect_return=0 7 | xdebug.auto_profile=0 8 | xdebug.dump_globals=0 9 | xdebug.trace_format=0 10 | --FILE-- 11 | 19 | --EXPECT-- 20 | array(3) { 21 | [5]=> 22 | int(1) 23 | [7]=> 24 | int(1) 25 | [12]=> 26 | int(1) 27 | } 28 | -------------------------------------------------------------------------------- /tests/coverage/bug00212-002.inc: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/coverage/bug00212-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #212: coverage coverage inaccurate (2) 3 | --INI-- 4 | xdebug.mode=coverage 5 | xdebug.trace_options=0 6 | xdebug.collect_return=0 7 | xdebug.auto_profile=0 8 | xdebug.dump_globals=0 9 | xdebug.trace_format=0 10 | --FILE-- 11 | 19 | --EXPECT-- 20 | array(3) { 21 | [7]=> 22 | int(1) 23 | [9]=> 24 | int(1) 25 | [11]=> 26 | int(1) 27 | } 28 | -------------------------------------------------------------------------------- /tests/coverage/bug00212-003.inc: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /tests/coverage/bug00212-003.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #212: coverage coverage inaccurate (3) 3 | --INI-- 4 | xdebug.mode=coverage 5 | xdebug.trace_options=0 6 | xdebug.collect_return=0 7 | xdebug.auto_profile=0 8 | xdebug.dump_globals=0 9 | xdebug.trace_format=0 10 | --FILE-- 11 | 19 | --EXPECT-- 20 | Hello World 21 | array(2) { 22 | [10]=> 23 | int(1) 24 | [12]=> 25 | int(1) 26 | } 27 | -------------------------------------------------------------------------------- /tests/coverage/bug00213.inc: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /tests/coverage/bug00313.inc: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /tests/coverage/bug00313.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #313: Segmentation Fault in code coverage analysis on empty PHP files 3 | --INI-- 4 | xdebug.mode=coverage 5 | xdebug.dump_globals=0 6 | xdebug.trace_format=0 7 | --FILE-- 8 | 16 | --EXPECTF-- 17 | ALIVE 18 | -------------------------------------------------------------------------------- /tests/coverage/bug00318.inc: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /tests/coverage/bug00318.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #318: Segmentation Fault in code coverage analysis 3 | --INI-- 4 | xdebug.mode=develop,coverage 5 | --FILE-- 6 | 13 | --EXPECTF-- 14 | Fatal error: %sbreak%s in %sbug00318.inc on line 3 15 | 16 | Call Stack:%A 17 | -------------------------------------------------------------------------------- /tests/coverage/bug00334.inc: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /tests/coverage/bug00422.inc: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/coverage/bug00422.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #422: Segfaults when using code coverage with a parse error in the script 3 | --INI-- 4 | xdebug.mode=coverage 5 | --FILE-- 6 | getMessage(), "\n"; 14 | } 15 | echo "END"; 16 | ?> 17 | --EXPECTF-- 18 | syntax error, unexpected%S 19 | END 20 | -------------------------------------------------------------------------------- /tests/coverage/bug00470.inc: -------------------------------------------------------------------------------- 1 | getMessage()); 10 | } 11 | } 12 | } 13 | ?> 14 | -------------------------------------------------------------------------------- /tests/coverage/bug00515.inc: -------------------------------------------------------------------------------- 1 | _foo = $foo; 11 | } else { 12 | $this->_foo = null; 13 | } 14 | } 15 | 16 | function getFoo() 17 | { 18 | return $this->_foo; 19 | } 20 | } 21 | ?> 22 | -------------------------------------------------------------------------------- /tests/coverage/bug00535.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #535: Code coverage and return before function|class ending 3 | --INI-- 4 | xdebug.mode=coverage 5 | --FILE-- 6 | a(); 18 | 19 | var_dump(xdebug_get_code_coverage()); 20 | ?> 21 | --EXPECTF-- 22 | array(1) { 23 | ["%sbug00535.php"]=> 24 | array(4) { 25 | [7]=> 26 | int(1) 27 | [11]=> 28 | int(1) 29 | [12]=> 30 | int(1) 31 | [14]=> 32 | int(1) 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /tests/coverage/bug00670.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #670: Xdebug crashes with broken "break x" code 3 | --INI-- 4 | xdebug.mode=develop,coverage 5 | --FILE-- 6 | 11 | --EXPECTF-- 12 | Fatal error: Cannot 'break' 2 levels in %s670-ConsistentHashing.inc on line 146 13 | 14 | Call Stack:%A 15 | -------------------------------------------------------------------------------- /tests/coverage/bug00697.inc: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/coverage/bug00766.inc: -------------------------------------------------------------------------------- 1 | 'b'); 4 | 5 | static public function &getDomain($domain) { 6 | return self::$domains[$domain]; 7 | } 8 | } 9 | 10 | Foo::getDomain('a'); 11 | -------------------------------------------------------------------------------- /tests/coverage/bug00879.inc: -------------------------------------------------------------------------------- 1 | 36 | -------------------------------------------------------------------------------- /tests/coverage/bug01034-002.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/coverage/bug01034-004.inc: -------------------------------------------------------------------------------- 1 | 26 | -------------------------------------------------------------------------------- /tests/coverage/bug01034-005.inc: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /tests/coverage/bug01195.inc: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/coverage/bug01200.inc: -------------------------------------------------------------------------------- 1 | add( 12 | 'build_age', 13 | 'choice', 14 | array( [] ) 15 | ); 16 | ?> 17 | -------------------------------------------------------------------------------- /tests/coverage/bug01210.inc: -------------------------------------------------------------------------------- 1 | $path) { 8 | $loader->set($namespace, $path); 9 | } 10 | 11 | $map = require __DIR__ . '/autoload_psr4.php'; 12 | foreach ($map as $namespace => $path) { 13 | $loader->setPsr4($namespace, $path); 14 | } 15 | 16 | $classMap = require __DIR__ . '/autoload_classmap.php'; 17 | if ($classMap) { 18 | $loader->addClassMap($classMap); 19 | } 20 | 21 | $loader->register(true); 22 | 23 | return $loader; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /tests/coverage/bug01241-002.inc: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /tests/coverage/bug01241.inc: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /tests/coverage/bug01263.inc: -------------------------------------------------------------------------------- 1 | 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | 11 | class PHP_CodeCoverage 12 | { 13 | private function addUncoveredFilesFromWhitelist() 14 | { 15 | foreach ($uncoveredFiles as $uncoveredFile) { 16 | for ($i = 1; $i <= $lines; $i++) { 17 | $data[$uncoveredFile][$i] = PHP_CodeCoverage_Driver::LINE_NOT_EXECUTED; 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/coverage/bug01263.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1263: Coverage of sending arguments to a method (opcache) 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=coverage 10 | opcache.enable_cli=1 11 | --FILE-- 12 | 22 | ==DONE== 23 | --EXPECT-- 24 | ==DONE== 25 | -------------------------------------------------------------------------------- /tests/coverage/bug01278.inc: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /tests/coverage/bug01278.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1278: Xdebug with PHP 7 does not handle prefill-from-oparray for XDEBUG_CC_UNUSED 3 | --INI-- 4 | xdebug.mode=coverage 5 | xdebug.auto_profile=0 6 | --FILE-- 7 | 16 | --EXPECTF-- 17 | Array 18 | ( 19 | [3] => -1 20 | [4] => -1 21 | [5] => -1 22 | [7] => -1 23 | [9] => 1 24 | ) 25 | -------------------------------------------------------------------------------- /tests/coverage/bug01381.inc: -------------------------------------------------------------------------------- 1 | []]; 7 | $currentFile = 0; 8 | $reader = new reader(); 9 | 10 | $coveredLines 11 | [$currentFile] 12 | [$reader->getAttribute('num')] 13 | = (int) $reader->getAttribute("count"); 14 | } 15 | } 16 | class reader 17 | { 18 | public function getAttribute() 19 | { 20 | return 0; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/coverage/bug01386-class1.inc: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/coverage/bug01386-class2.inc: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/coverage/bug01403.inc: -------------------------------------------------------------------------------- 1 | reduce(function () use ( 12 | $outerItem, 13 | $anotherOuterItem 14 | ) { 15 | return false; 16 | }); 17 | ?> 18 | -------------------------------------------------------------------------------- /tests/coverage/bug01403.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1403: Code coverage does not cover BIND_STATIC/BIND_LEXICAL 3 | --INI-- 4 | xdebug.mode=coverage 5 | xdebug.auto_profile=0 6 | --FILE-- 7 | 16 | --EXPECTF-- 17 | Array 18 | ( 19 | [5] => 1 20 | [6] => 1 21 | [8] => 1 22 | [11] => 1 23 | [12] => 1 24 | [13] => 1 25 | [15] => 1 26 | [16] => 1 27 | [18] => 1 28 | ) 29 | -------------------------------------------------------------------------------- /tests/coverage/bug01420.inc: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /tests/coverage/bug01429.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1429: Code coverage does not cover null coalesce 3 | --INI-- 4 | xdebug.mode=coverage 5 | --FILE-- 6 | 19 | --EXPECT-- 20 | line 5 is hit: yes 21 | line 6 is hit: yes 22 | -------------------------------------------------------------------------------- /tests/coverage/bug01439.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1439: Code coverage does not cover is_object (in elseif) 3 | --INI-- 4 | xdebug.mode=coverage 5 | --FILE-- 6 | 22 | --EXPECT-- 23 | Is object! 24 | line 9 is hit: yes 25 | -------------------------------------------------------------------------------- /tests/coverage/bug01446.inc: -------------------------------------------------------------------------------- 1 | test = (object) [ 'bar' => 42 ]; 9 | } 10 | 11 | public function doSomething() 12 | { 13 | if (isset($this->test->foo)) { 14 | return 'foo'; 15 | } elseif (isset($this->test->bar)) { 16 | return 'bar'; 17 | } 18 | 19 | return ''; 20 | } 21 | } 22 | ?> 23 | -------------------------------------------------------------------------------- /tests/coverage/bug01486-002.inc: -------------------------------------------------------------------------------- 1 | 23 | -------------------------------------------------------------------------------- /tests/coverage/bug01509.inc: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /tests/coverage/bug01530.inc: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /tests/coverage/bug01679.inc: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /tests/coverage/bug01691.inc: -------------------------------------------------------------------------------- 1 | that($latitude, 'latitude')->range(-90, 90) 22 | ->that($longitude, 'longitude')->range(-140, 140) 23 | ->verifyNow(); 24 | } 25 | } 26 | ?> 27 | -------------------------------------------------------------------------------- /tests/coverage/bug01713.inc: -------------------------------------------------------------------------------- 1 | hasFoo() && 13 | preg_match( 14 | '((?:^|\s)' . preg_quote( get_class( $class ) ) . '(?:\s|$))', 15 | get_class( $class ) 16 | ) 17 | ); 18 | } 19 | 20 | foo(new MyClass); 21 | ?> 22 | -------------------------------------------------------------------------------- /tests/coverage/bug01713.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1713: INIT_FCALL is not overloaded in code coverage 3 | --INI-- 4 | xdebug.mode=coverage 5 | --FILE-- 6 | 20 | --EXPECTF-- 21 | line #12 is present and covered 22 | line #13 is present and covered 23 | line #14 is present and covered 24 | -------------------------------------------------------------------------------- /tests/coverage/bug01728.inc: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /tests/coverage/bug01728.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1728: INIT_STATIC_METHOD_FCALL is not overloaded in code coverage 3 | --INI-- 4 | xdebug.mode=coverage 5 | --FILE-- 6 | 19 | --EXPECTF-- 20 | test 21 | line #6 is present and covered 22 | line #7 is present and covered 23 | -------------------------------------------------------------------------------- /tests/coverage/bug01733.inc: -------------------------------------------------------------------------------- 1 | test() ); 17 | ?> 18 | -------------------------------------------------------------------------------- /tests/coverage/bug01733a.inc: -------------------------------------------------------------------------------- 1 | __FILE__ ]; 3 | ?> 4 | -------------------------------------------------------------------------------- /tests/coverage/bug01779.inc: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /tests/coverage/bug01787.inc: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /tests/coverage/bug01788a.inc: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /tests/coverage/bug01788b.inc: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /tests/coverage/bug01841-001.inc: -------------------------------------------------------------------------------- 1 | "one", 8 | 2 => "twee", 9 | default => "three", 10 | }; 11 | 12 | return $a; 13 | } 14 | 15 | $result = a(); 16 | -------------------------------------------------------------------------------- /tests/coverage/bug01841-002.inc: -------------------------------------------------------------------------------- 1 | "one", 8 | 2 => "twee", 9 | default => "three", 10 | }; 11 | 12 | return $a; 13 | } 14 | 15 | $result = a(); 16 | -------------------------------------------------------------------------------- /tests/coverage/bug01841-003.inc: -------------------------------------------------------------------------------- 1 | "one", 8 | 2 => "twee", 9 | 10 | }; 11 | 12 | return $a; 13 | } 14 | 15 | try { 16 | $result = a(); 17 | } catch (Error) {} 18 | -------------------------------------------------------------------------------- /tests/coverage/bug01841-004.inc: -------------------------------------------------------------------------------- 1 | = 3 => "one", 8 | $maybe < 3 => "twee", 9 | }; 10 | 11 | return $a; 12 | } 13 | 14 | $result = a(); 15 | -------------------------------------------------------------------------------- /tests/coverage/bug01841-005.inc: -------------------------------------------------------------------------------- 1 | "pi", 8 | 3 => "three", 9 | default => "def", 10 | }; 11 | 12 | return $a; 13 | } 14 | 15 | $result = a(); 16 | -------------------------------------------------------------------------------- /tests/coverage/bug01903-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1903: XDEBUG_CC_DEAD_CODE and XDEBUG_CC_UNUSED are only defined with mode=coverage 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 9 | --EXPECT-- 10 | 2 1 4 11 | -------------------------------------------------------------------------------- /tests/coverage/bug01903-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1903: XDEBUG_CC_DEAD_CODE and XDEBUG_CC_UNUSED should be defined with mode=off 3 | --INI-- 4 | xdebug.mode=off 5 | --FILE-- 6 | 13 | --EXPECT-- 14 | bool(true) 15 | bool(true) 16 | bool(true) 17 | -------------------------------------------------------------------------------- /tests/coverage/bug01910.inc: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/coverage/bug01932.inc: -------------------------------------------------------------------------------- 1 | getBasicPath() 10 | . '/' 11 | . $this->getFileName(); 12 | 13 | return $this->runAction($path); 14 | } 15 | 16 | private function getBasicPath(): string 17 | { 18 | return '/var/www'; 19 | } 20 | 21 | private function getFileName(): string 22 | { 23 | return 'file.csv'; 24 | } 25 | 26 | private function runAction(string $path): bool 27 | { 28 | return true; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tests/coverage/bug01938-Bar.inc: -------------------------------------------------------------------------------- 1 | returnsTrue(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tests/coverage/bug01938-FooTrait.inc: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /tests/coverage/bug01992.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1992: Code Coverage with filter can crash on xdebug_stop_code_coverage() 3 | --SKIPIF-- 4 | 7 | --INI-- 8 | xdebug.mode=coverage 9 | auto_prepend_file=tests/coverage/bug01992-filter.inc 10 | --FILE-- 11 | 15 | --EXPECTF-- 16 | -------------------------------------------------------------------------------- /tests/coverage/bug02009.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2009: xdebug_stop_code_coverage's argument has type mismatch 3 | --INI-- 4 | xdebug.mode=coverage 5 | --FILE-- 6 | 12 | --EXPECTF-- 13 | ---DONE--- 14 | -------------------------------------------------------------------------------- /tests/coverage/bug02075.inc: -------------------------------------------------------------------------------- 1 | self::$groupNamespace, 12 | 'alias' => '', 13 | ); 14 | self::$recordPart = 'class'; 15 | } 16 | 17 | public static function showMe() 18 | { 19 | self::recordTokenClass(); 20 | } 21 | } 22 | ?> 23 | -------------------------------------------------------------------------------- /tests/coverage/bug02085.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2085: Crash when used with source guardian encoded files 3 | --INI-- 4 | xdebug.mode=coverage 5 | --FILE-- 6 | 17 | --EXPECTF-- 18 | %AI'm encoded 19 | -------------------------------------------------------------------------------- /tests/coverage/coverage.inc: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /tests/coverage/coverage5.inc: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/coverage/coverage6.inc: -------------------------------------------------------------------------------- 1 | 26 | -------------------------------------------------------------------------------- /tests/coverage/coverage7.inc: -------------------------------------------------------------------------------- 1 | loop_test(2); 33 | $f->test_closure(); 34 | ?> 35 | -------------------------------------------------------------------------------- /tests/coverage/coverage_exit.inc: -------------------------------------------------------------------------------- 1 | 2) { 5 | exit; 6 | 7 | echo "foo"; 8 | } 9 | } 10 | 11 | exit_test(); 12 | ?> 13 | -------------------------------------------------------------------------------- /tests/coverage/jmp_frameless.inc: -------------------------------------------------------------------------------- 1 | 18 | --EXPECTF-- 19 | bool(false) 20 | bool(true) 21 | bool(true) 22 | bool(false) 23 | -------------------------------------------------------------------------------- /tests/debugger/break-echo.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/debugger/break-with-error.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/debugger/bug00168.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #168: Memory error with DBGp eval when the result is an array 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 12 | --EXPECT-- 13 | -------------------------------------------------------------------------------- /tests/debugger/bug00209.inc: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /tests/debugger/bug00209.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #209: Additional remote debugging session started when triggering shutdown function 3 | --SKIPIF-- 4 | 5 | --FILE-- 6 | 10 | --EXPECT-- 11 | -------------------------------------------------------------------------------- /tests/debugger/bug00475.inc: -------------------------------------------------------------------------------- 1 | "Value", "example" => "value\0key" ); 3 | var_dump( $a ); 4 | ?> 5 | -------------------------------------------------------------------------------- /tests/debugger/bug00494.inc: -------------------------------------------------------------------------------- 1 | arr = array( 6 | 0 => array("some", "values"), 7 | 1 => array("some", "more", "values") 8 | ); 9 | } 10 | } 11 | 12 | class def extends abc { 13 | private $arr; 14 | } 15 | 16 | $o = new def; 17 | echo "o: "; 18 | var_dump($o); 19 | -------------------------------------------------------------------------------- /tests/debugger/bug00530.inc: -------------------------------------------------------------------------------- 1 | b = 'b'; 8 | $c = 'a' . 'b'; 9 | } 10 | // I hoover in nb over this $a 11 | public function test($a) { 12 | echo "a ist: " . $a; 13 | } 14 | } 15 | 16 | $a = 1; 17 | $b = 2; 18 | $c = new MyClass(); 19 | $f = 3; 20 | $c->test('gogo'); // this call*** 21 | $c->test('gogo'); 22 | -------------------------------------------------------------------------------- /tests/debugger/bug00538.inc: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /tests/debugger/bug00606.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/debugger/bug00619.inc: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /tests/debugger/bug00622.inc: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/debugger/bug00623.inc: -------------------------------------------------------------------------------- 1 | show_name_dyn()); 25 | var_dump($t->show_name_dyn()); 26 | 27 | ?> 28 | -------------------------------------------------------------------------------- /tests/debugger/bug00627-symlink-target.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/debugger/bug00627-symlink.inc: -------------------------------------------------------------------------------- 1 | bug00627-symlink-target.inc -------------------------------------------------------------------------------- /tests/debugger/bug00627.inc: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/debugger/bug00667.inc: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/debugger/bug00678-001.inc: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /tests/debugger/bug00678-002.inc: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/debugger/bug00686.inc: -------------------------------------------------------------------------------- 1 | someProperty = "o1"; 4 | 5 | $object2 = new stdClass(); 6 | $object2->someProperty = "o2"; 7 | 8 | $storage = new SplObjectStorage(); 9 | $storage->attach($object1); 10 | $storage->attach($object2); 11 | 12 | var_dump($storage); //breakpoint here 13 | ?> 14 | -------------------------------------------------------------------------------- /tests/debugger/bug00687.inc: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /tests/debugger/bug00688.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/debugger/bug00763.inc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | 10 | -------------------------------------------------------------------------------- /tests/debugger/bug00774.inc: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /tests/debugger/bug00777.inc: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /tests/debugger/bug00778.inc: -------------------------------------------------------------------------------- 1 | 3 |
15 | %sbug00280.php:5: 16 | array (size=1) 17 | 'test' => string 'test' (length=5) 18 |19 | -------------------------------------------------------------------------------- /tests/develop/bug00298.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #298: xdebug_var_dump & multiline strings 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.file_link_format= 6 | xdebug.filename_format= 7 | --FILE-- 8 | 13 | --EXPECTF-- 14 |
15 | %sbug00298.php:4:string 'select * table from where condition' (length=38) 16 |17 | -------------------------------------------------------------------------------- /tests/develop/bug00315.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #315: Xdebug crashes when including a file that doesn't exist 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.dump_globals=0 6 | xdebug.trace_format=0 7 | xdebug.force_error_reporting=0 8 | --FILE-- 9 | 13 | --EXPECT-- 14 | ALIVE 15 | -------------------------------------------------------------------------------- /tests/develop/bug00565.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #565: xdebug.show_local_vars setting does not work with php 5.3 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.show_local_vars=1 6 | xdebug.dump.GET= 7 | xdebug.dump.SERVER= 8 | --FILE-- 9 | 17 | --EXPECTF-- 18 | Fatal error: Uncaught%sException%sin %sbug00565.php on line 4 19 | 20 | Exception:%sin %sbug00565.php on line 4 21 | 22 | Call Stack: 23 | %w%f %w%d 1. {main}() %sbug00565.php:0 24 | %w%f %w%d 2. func() %sbug00565.php:7 25 | 26 | 27 | Variables in local scope (#2): 28 | $a = 'hoge' 29 | -------------------------------------------------------------------------------- /tests/develop/bug00567-noopcache.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #567: xdebug_debug_zval() and xdebug_debug_zval_stdout() don't work (!opcache) 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=develop 10 | --FILE-- 11 | 20 | --EXPECTF-- 21 | a: (%s, is_ref=0)='hoge' 22 | a: (%s, is_ref=0)='hoge'(%d) 23 | -------------------------------------------------------------------------------- /tests/develop/bug00567-opcache.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #567: xdebug_debug_zval() and xdebug_debug_zval_stdout() don't work (opcache) 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=develop 10 | --FILE-- 11 | 20 | --EXPECTF-- 21 | a: no such symbol 22 | a: no such symbol 23 | -------------------------------------------------------------------------------- /tests/develop/bug00570.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #570: undefined symbol: zend_memrchr 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.dump.GET= 6 | xdebug.dump.SERVER= 7 | --FILE-- 8 | 14 | --EXPECTF-- 15 | Fatal error: Uncaught%sException%sin %sbug00570.php on line 3 16 | 17 | Exception: in %sbug00570.php on line 3 18 | 19 | Call Stack: 20 | %w%f %w%d 1. {main}() %sbug00570.php:0 21 | %w%f %w%d 2. foo() %sbug00570.php:5 22 | -------------------------------------------------------------------------------- /tests/develop/bug00609.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #609: Xdebug and SOAP error handler conflicts 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=develop 10 | --FILE-- 11 | true)); 14 | } catch (Exception $e) { 15 | echo 'Error Caught'; 16 | } 17 | ?> 18 | --EXPECTF-- 19 | Error Caught 20 | -------------------------------------------------------------------------------- /tests/develop/bug00625-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #625: xdebug_get_headers() resets header list (1) 3 | --ENV-- 4 | XDEBUG_CONFIG= 5 | --INI-- 6 | xdebug.mode=develop 7 | xdebug.filename_format= 8 | --FILE-- 9 | 14 | --EXPECTF-- 15 | %sbug00625-001.php:4: 16 | array(1) { 17 | [0] => 18 | string(13) "Location: bar" 19 | } 20 | -------------------------------------------------------------------------------- /tests/develop/bug00625-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #625: xdebug_get_headers() resets header list (2) 3 | --ENV-- 4 | XDEBUG_CONFIG= 5 | --INI-- 6 | xdebug.mode=develop 7 | default_charset=utf-8 8 | xdebug.filename_format= 9 | --FILE-- 10 | 15 | --EXPECTF-- 16 | %sbug00625-002.php:3: 17 | array(1) { 18 | [0] => 19 | string(38) "Content-type: text/plain;charset=utf-8" 20 | } 21 | %sbug00625-002.php:4: 22 | array(1) { 23 | [0] => 24 | string(38) "Content-type: text/plain;charset=utf-8" 25 | } 26 | -------------------------------------------------------------------------------- /tests/develop/bug00654.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #654: Xdebug hides error message in CLI 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | error_reporting=-1 10 | xdebug.mode=develop 11 | xdebug.dump.SERVER= 12 | --FILE-- 13 | 17 | --EXPECTF-- 18 | FOO 19 | 20 | Warning: session_start(): %sheaders%ssent%sin %sbug00654.php on line 3 21 | 22 | Call Stack: 23 | %w%f %w%d 1. {main}() %sbug00654.php:0 24 | %w%f %w%d 2. session_start() %sbug00654.php:3 25 | -------------------------------------------------------------------------------- /tests/develop/bug00684.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #684: xdebug_var_dump - IE does not support & 3 | --INI-- 4 | html_errors=1 5 | xdebug.mode=develop 6 | xdebug.file_link_format= 7 | xdebug.filename_format= 8 | --FILE-- 9 | 12 | --EXPECTF-- 13 |
14 | %sbug00684.php:2:string 'Testing isn't fun' (length=17) 15 |16 | -------------------------------------------------------------------------------- /tests/develop/bug00709.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #709: Xdebug doesn't understand E_USER_DEPRECATED 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.trace_format=0 6 | --FILE-- 7 | 10 | --EXPECTF-- 11 | Deprecated: ZOMG in %sbug00709.php on line 2 12 | 13 | Call Stack: 14 | %w%f %w%d 1. {main}() %sbug00709.php:0 15 | %w%f %w%d 2. trigger_error($message = 'ZOMG', $error_%s = 16384) %sbug00709.php:2 16 | -------------------------------------------------------------------------------- /tests/develop/bug00744.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #744: new lines in a PHP file from Windows are displayed with an extra white line with var_dump(). 3 | --INI-- 4 | html_errors=1 5 | xdebug.mode=develop 6 | xdebug.file_link_format= 7 | xdebug.filename_format= 8 | --FILE-- 9 | 15 | --EXPECTF-- 16 |
17 | %sbug00744.php:5:string 'hello world' (length=32) 18 |19 | -------------------------------------------------------------------------------- /tests/develop/bug00800.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #800: var_dump(get_class(new foo\bar')) add an extra "\" in class name. 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 14 | --EXPECTF-- 15 | %sbug00800.php:7: 16 | string(7) "foo\bar" 17 | -------------------------------------------------------------------------------- /tests/develop/bug00885.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #885: missing validation point returned by strchr in xdebug_error_cb 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 9 | --EXPECTF-- 10 | Fatal error: Uncaught%sException%slong message %s in %sbug00885.php on line 2 11 | 12 | Exception: long message %s in %sbug00885.php on line 2 13 | 14 | Call Stack: 15 | %w%f %w%d 1. {main}() %sbug00885.php:0 16 | -------------------------------------------------------------------------------- /tests/develop/bug00898.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #898: Wrong works with empty string key in ArrayObject 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 12 | --EXPECTF-- 13 | %sbug00898.php:5: 14 | class ArrayObject#%d (1) { 15 | private $storage => 16 | array(1) { 17 | '' => 18 | string(5) "value" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tests/develop/bug00903.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #903: xdebug_get_headers() returns replaced headers 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 19 | --EXPECTF-- 20 | %sbug00903.php:12: 21 | array(3) { 22 | [0] => 23 | string(8) "foo: baz" 24 | [1] => 25 | string(10) "whoop: baz" 26 | [2] => 27 | string(18) "Set-Cookie: remove" 28 | } 29 | -------------------------------------------------------------------------------- /tests/develop/bug00947-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #947: Newlines converted when html_errors = 0 (ansi) 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | html_errors=0 10 | xdebug.mode=develop 11 | xdebug.cli_color=2 12 | --FILE-- 13 | 18 | --EXPECTF-- 19 | [1m%sbug00947-001.php[22m:[1m4[22m: 20 | [1mstring[22m([32m18[0m) "[31m\000aze\nrty\\r\\nqwerty[0m" 21 | [1m%sbug00947-001.php[22m:[1m4[22m: 22 | [1mdouble[22m([33m4.34[0m) 23 | -------------------------------------------------------------------------------- /tests/develop/bug00947-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #947: Newlines converted when html_errors = 0 (plain) 3 | --INI-- 4 | html_errors=0 5 | xdebug.mode=develop 6 | xdebug.cli_color=0 7 | --FILE-- 8 | 13 | --EXPECTF-- 14 | %sbug00947-002.php:4: 15 | string(%r(18|19)%r) "\000aze 16 | rty\r\nqwerty" 17 | %sbug00947-002.php:4: 18 | double(4.34) 19 | -------------------------------------------------------------------------------- /tests/develop/bug00987-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #987: Hidden property names not shown with var_dump (CLI) 3 | --INI-- 4 | html_errors=0 5 | xdebug.mode=develop 6 | xdebug.cli_color=0 7 | xdebug.filename_format= 8 | --FILE-- 9 | 'value', 1 => 0, -4 => "foo", (int) 3.14 => false); 11 | 12 | var_dump($object); 13 | ?> 14 | --EXPECTF-- 15 | %sbug00987-001.php:4: 16 | class stdClass#%d (4) { 17 | public $key => 18 | string(5) "value" 19 | public $1 => 20 | int(0) 21 | public $-4 => 22 | string(3) "foo" 23 | public $3 => 24 | bool(false) 25 | } 26 | -------------------------------------------------------------------------------- /tests/develop/bug00987-006.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #987: Hidden property names not shown with var_dump 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | html_errors=0 10 | xdebug.mode=develop 11 | xdebug.cli_color=0 12 | error_reporting=-1 13 | xdebug.show_local_vars=0 14 | --FILE-- 15 | 17 |
15 | %sbug01262.php:2:string 'Anything' (length=8) 16 |17 | string(8) "Anything" 18 | -------------------------------------------------------------------------------- /tests/develop/bug01282-32bit.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1282: var_dump() of integers > 32 bit is broken on Windows 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=develop 10 | --FILE-- 11 | 18 | --EXPECTF-- 19 | %sbug01282-32bit.php:3: 20 | int(2147483647) 21 |
22 | %sbug01282-32bit.php:6:int 2147483647 23 |24 | -------------------------------------------------------------------------------- /tests/develop/bug01282-64bit.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1282: var_dump() of integers > 32 bit is broken on Windows 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=develop 10 | xdebug.file_link_format= 11 | --FILE-- 12 | 19 | --EXPECTF-- 20 | %sbug01282-64bit.php:3: 21 | int(9223372036854775807) 22 |
23 | %sbug01282-64bit.php:6:int 9223372036854775807 24 |25 | -------------------------------------------------------------------------------- /tests/develop/bug01343-32bit.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1343: Wrong values of numerical keys outside 32bit range 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=develop 10 | html_errors=0 11 | xdebug.filename_format= 12 | --FILE-- 13 | 19 | --EXPECTF-- 20 | %sbug01343-32bit.php:5: 21 | int(-1671932682) 22 | %sbug01343-32bit.php:5: 23 | array(1) { 24 | [-1671932682] => 25 | string(4) "test" 26 | } 27 | -------------------------------------------------------------------------------- /tests/develop/bug01343-64bit.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1343: Wrong values of numerical keys outside 32bit range 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=develop 10 | html_errors=0 11 | xdebug.filename_format= 12 | --FILE-- 13 | 19 | --EXPECTF-- 20 | %sbug01343-64bit.php:5: 21 | int(730022509303030) 22 | %sbug01343-64bit.php:5: 23 | array(1) { 24 | [730022509303030] => 25 | string(4) "test" 26 | } 27 | -------------------------------------------------------------------------------- /tests/develop/bug01534.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1534: Segfault when exception thrown in a closure bound to class scope 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | bindTo($this); 11 | $closure(); 12 | } 13 | } 14 | 15 | $bug = new bug(); 16 | $bug->on(function() { 17 | throw new \Exception("Exception thrown successfully"); 18 | }); 19 | } catch (\Exception $ex) { 20 | echo "Works!"; 21 | } 22 | ?> 23 | --EXPECTF-- 24 | Works! 25 | -------------------------------------------------------------------------------- /tests/develop/bug01613-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1613: Wrong name displayed for Recoverable fatal error [text] (< PHP 7.4) 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=develop 10 | xdebug.collect_assignments=0 11 | xdebug.show_local_vars=0 12 | xdebug.dump_globals=0 13 | --FILE-- 14 | 18 | --EXPECTF-- 19 | Recoverable fatal error: Object of class DateTime could not be converted to string in %sbug01613-001.php on line %d 20 | 21 | Call Stack: 22 | %w%f %w%d 1. {main}() %sbug01613-001.php:%d 23 | -------------------------------------------------------------------------------- /tests/develop/bug01665.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1665: Segfault when overriding a function object parameter 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 19 | --EXPECTF-- 20 | No segfault 21 | -------------------------------------------------------------------------------- /tests/develop/bug02182.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2182: Segfault with ArrayObject on stack 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 18 | --EXPECTF-- 19 | Fatal error: Uncaught Exception in %sbug02182.php on line %d 20 | 21 | Exception: in %sbug02182.php on line %d 22 | 23 | Call Stack: 24 | %w%f %w%d 1. {main}() %sbug02182.php:%d 25 | %w%f %w%d 2. z($obj = class ArrayObject { public $prop = 42 }) %sbug02182.php:%d 26 | -------------------------------------------------------------------------------- /tests/develop/bug02264.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2264: Rounding of fractional numbers 3 | --INI-- 4 | xdebug.mode=off 5 | --FILE-- 6 | 14 | --EXPECTF-- 15 | float(239749.99999999997) 16 | %sbug02264.php:%d: 17 | double(239749.99999999997) 18 | -------------------------------------------------------------------------------- /tests/develop/error_collection-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for collection errors (1) 3 | --INI-- 4 | display_errors=1 5 | xdebug.mode=develop 6 | html_errors=0 7 | --FILE-- 8 | 15 | --EXPECTF-- 16 | Warning: An error in %serror_collection-001.php on line 4 17 | 18 | Call Stack: 19 | %w%f %w%d 1. {main}() %serror_collection-001.php:0 20 | %w%f %w%d 2. trigger_error($message = 'An error', $error_%s = 512) %A 21 | -------------------------------------------------------------------------------- /tests/develop/error_collection-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for collection errors (2) (fatal error) 3 | --INI-- 4 | error_log=NULL 5 | xdebug.mode=develop 6 | --FILE-- 7 | 15 | --EXPECTF-- 16 | Fatal error: An error in %serror_collection-002.php on line 4 17 | 18 | Call Stack: 19 | %w%f %w%d 1. {main}() %serror_collection-002.php:0 20 | %w%f %w%d 2. trigger_error($message = 'An error', $error_%s = 256) %serror_collection-002.php:4 21 | -------------------------------------------------------------------------------- /tests/develop/exception.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test to see if exceptions still work with Xdebug's hook enabled 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 21 | --EXPECT-- 22 | Caught 23 | -------------------------------------------------------------------------------- /tests/develop/force_display_errors.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for xdebug.force_display_errors 3 | --INI-- 4 | xdebug.mode=develop 5 | display_errors=0 6 | log_errors=0 7 | xdebug.force_display_errors=1 8 | error_reporting=-1 9 | --FILE-- 10 | 16 | --EXPECTF-- 17 | Error: 18 | 19 | Notice: two in %sforce_display_errors.php on line 5 20 | 21 | Call Stack: 22 | %w%f %w%d 1. {main}() %sforce_display_errors.php:0 23 | %w%f %w%d 2. trigger_error($message = 'two', $error_%s = 1024) %sforce_display_errors.php:5 24 | -------------------------------------------------------------------------------- /tests/develop/force_error_reporting-display_errors-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for xdebug.force_error_reporting (display_errors) [1] 3 | --INI-- 4 | xdebug.mode=develop 5 | display_errors=1 6 | log_errors=0 7 | xdebug.force_error_reporting=E_USER_WARNING 8 | --FILE-- 9 | 16 | --EXPECTF-- 17 | Warning: two in %sforce_error_reporting-display_errors-001.php on line 4 18 | 19 | Call Stack: 20 | %w%f %w%d 1. {main}() %sforce_error_reporting-display_errors-001.php:0 21 | %w%f %w%d 2. trigger_error($message = 'two', $error_%s = 512) %sforce_error_reporting-display_errors-001.php:4 22 | -------------------------------------------------------------------------------- /tests/develop/max_nesting_level-003.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for xdebug.max_nesting_level (non develop mode) 3 | --INI-- 4 | xdebug.max_stack_frames=-1 5 | xdebug.mode=trace 6 | xdebug.show_local_vars=0 7 | xdebug.max_nesting_level=128 8 | --FILE-- 9 | = 500) { 19 | return; 20 | } 21 | 22 | foo(); 23 | } 24 | foo(); 25 | 26 | echo $a, "\n"; 27 | ?> 28 | --EXPECTF-- 29 | 500 30 | -------------------------------------------------------------------------------- /tests/develop/monitor-functions-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Function Monitor: Setting a list of functions to spy on 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 9 | ===DONE=== 10 | --EXPECT-- 11 | ===DONE=== 12 | -------------------------------------------------------------------------------- /tests/develop/monitor-functions-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Function Monitor: Setting a replacement list of functions to spy on 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 11 | ===DONE=== 12 | --EXPECT-- 13 | ===DONE=== 14 | -------------------------------------------------------------------------------- /tests/develop/monitor-functions-003.inc: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /tests/develop/print_function_stack.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for xdebug_print_function_stack() 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.cli_color=0 6 | --FILE-- 7 | 20 | --EXPECTF-- 21 | Xdebug: user triggered in %sprint_function_stack.php on line 4 22 | 23 | Call Stack: 24 | %w%f %w%d 1. {main}() %sprint_function_stack.php:0 25 | %w%f %w%d 2. bar() %sprint_function_stack.php:12 26 | %w%f %w%d 3. foo(1, 3, 'foo', 'bar') %sprint_function_stack.php:9 27 | %w%f %w%d 4. xdebug_print_function_stack() %sprint_function_stack.php:4 28 | -------------------------------------------------------------------------------- /tests/develop/scream.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for scream support 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.scream=0 6 | error_reporting(E_ALL); 7 | xdebug.force_error_reporting=0 8 | --FILE-- 9 | 16 | --EXPECTF-- 17 | SCREAM: Error suppression ignored for 18 | Warning: %s in %sscream.php on line 4 19 | 20 | Call Stack: 21 | %w%f %w%d 1. {main}() %sscream.php:0 22 | %w%f %w%d 2. hex2bin($%s = '4') %sscream.php:4 23 | -------------------------------------------------------------------------------- /tests/develop/scream_cli.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for scream support 3 | --INI-- 4 | xdebug.mode=develop 5 | xdebug.scream=0 6 | error_reporting(E_ALL); 7 | xdebug.cli_color=2 8 | xdebug.force_error_reporting=0 9 | --FILE-- 10 | 17 | --EXPECTF-- 18 | [1m[31mSCREAM[0m: Error suppression ignored for 19 | [1m[31mWarning[0m: %s[22m in [31m%sscream_cli.php[0m on line [32m4[0m[22m 20 | 21 | [1mCall Stack:[22m 22 | %w%f %w%d 1. {main}() %sscream_cli.php:0 23 | %w%f %w%d 2. hex2bin($%s = '4') %sscream_cli.php:4 24 | -------------------------------------------------------------------------------- /tests/develop/shutdown.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Shutdown function 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 13 | --EXPECTF-- 14 | I'm alive! 15 | -------------------------------------------------------------------------------- /tests/develop/xdebug_var_dump_datetime.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test output from xdebug_var_dump() with DateTimeImmutable 3 | --INI-- 4 | xdebug.mode=develop 5 | html_errors=0 6 | date.timezone=Europe/Oslo 7 | xdebug.var_display_max_children=11 8 | xdebug.file_link_format=xdebug://%f@%l 9 | xdebug.filename_format= 10 | --FILE-- 11 | 14 | --EXPECTF-- 15 | %sxdebug_var_dump_datetime.php:%d: 16 | class DateTimeImmutable#%d (3) { 17 | public $date => 18 | string(26) "2019-12-20 13:00:00.000000" 19 | public $timezone_type => 20 | int(1) 21 | public $timezone => 22 | string(6) "+00:00" 23 | } 24 | -------------------------------------------------------------------------------- /tests/filter/bug01508.php: -------------------------------------------------------------------------------- 1 | obj = $object; 11 | } 12 | 13 | function callObj( string $name, ...$arguments ) 14 | { 15 | return $this->obj->$name( ...$arguments ); 16 | } 17 | 18 | function error( $value ) 19 | { 20 | trigger_error( $value, E_USER_WARNING ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/filter/stack/three.php: -------------------------------------------------------------------------------- 1 | obj = $object; 11 | } 12 | 13 | function callObj( string $name, ...$arguments ) 14 | { 15 | return $this->obj->$name( ...$arguments ); 16 | } 17 | 18 | function error( $value ) 19 | { 20 | trigger_error( $value, E_USER_WARNING ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/filter/stack/two.php: -------------------------------------------------------------------------------- 1 | obj = $object; 11 | } 12 | 13 | function callObj( string $name, ...$arguments ) 14 | { 15 | return $this->obj->$name( ...$arguments ); 16 | } 17 | 18 | function error( $value ) 19 | { 20 | trigger_error( $value, E_USER_WARNING ); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /tests/filter/xdebug/trace/xdebug.php: -------------------------------------------------------------------------------- 1 | 10 | --EXPECTF-- 11 | %sGarbage Collection statistics was not started in %s 12 | bool(false) 13 | -------------------------------------------------------------------------------- /tests/gcstats/xdebug_gc_stats-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | GC Stats: No memleak, return empty runs 3 | --INI-- 4 | xdebug.mode=gcstats 5 | xdebug.start_with_request=yes 6 | zend.enable_gc=1 7 | --FILE-- 8 | 13 | --EXPECTF-- 14 | Garbage Collection Report 15 | version: 1 16 | creator: xdebug %d.%s (PHP %s) 17 | 18 | Collected | Efficiency% | Duration | Memory Before | Memory After | Reduction% | Function 19 | ----------+-------------+----------+---------------+--------------+------------+--------- 20 | -------------------------------------------------------------------------------- /tests/gcstats/xdebug_gc_stats-006.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | GC Stats: Start with xdebug_start_gcstats() and filename 3 | --INI-- 4 | xdebug.mode=gcstats 5 | xdebug.start_with_request=default 6 | zend.enable_gc=1 7 | --FILE-- 8 | 21 | --EXPECTF-- 22 | bool(false) 23 | bool(true) 24 | string(%d) "%sgcstats.%s.%s.txt" 25 | -------------------------------------------------------------------------------- /tests/gcstats/xdebug_gc_stats-007.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | GC Stats: userland statistic functions 3 | --INI-- 4 | xdebug.mode=gcstats 5 | xdebug.start_with_request=default 6 | zend.enable_gc=1 7 | --FILE-- 8 | a = $a; 14 | $a->b = $b; 15 | unset($a, $b); 16 | } 17 | gc_collect_cycles(); 18 | 19 | printf("runs: %d\n", xdebug_get_gc_run_count()); 20 | printf("collected: %d\n", xdebug_get_gc_total_collected_roots()); 21 | ?> 22 | --EXPECTF-- 23 | runs: 1 24 | collected: 200 25 | -------------------------------------------------------------------------------- /tests/gcstats/xdebug_gc_stats-009.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | GC Stats: Starting with Zend GC off 3 | --SKIPIF-- 4 | = 7.3'); 7 | ?> 8 | --INI-- 9 | xdebug.mode=gcstats 10 | xdebug.start_with_request=yes 11 | zend.enable_gc=0 12 | xdebug.log= 13 | xdebug.log_level=10 14 | --FILE-- 15 | 17 | --EXPECTF-- 18 | Xdebug: [GC Stats] PHP's Garbage Collection is disabled 19 | -------------------------------------------------------------------------------- /tests/library/xdebug_constants.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2223: Xdebug's constants are not available with xdebug.mode=off 3 | --INI-- 4 | xdebug.mode=off 5 | --FILE-- 6 | 14 | --EXPECT-- 15 | Constants: available: 17 16 | -------------------------------------------------------------------------------- /tests/library/xdebug_info-mode-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | xdebug_info("mode") 3 | --INI-- 4 | display_errors=0 5 | error_log= 6 | xdebug.mode=develop,trace 7 | --FILE-- 8 | 11 | --EXPECTF-- 12 | %sxdebug_info-mode-001.php:2: 13 | array(2) { 14 | [0] => 15 | string(7) "develop" 16 | [1] => 17 | string(5) "trace" 18 | } 19 | -------------------------------------------------------------------------------- /tests/library/xdebug_info-mode-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | xdebug_info("mode") with xdebug.mode=off 3 | --INI-- 4 | display_errors=0 5 | error_log= 6 | xdebug.mode=off 7 | --FILE-- 8 | 11 | --EXPECTF-- 12 | array(0) { 13 | } 14 | -------------------------------------------------------------------------------- /tests/library/xdebug_info-mode-003.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | xdebug_info("mode") overriden by XDEBUG_MODE 3 | --INI-- 4 | display_errors=0 5 | error_log= 6 | xdebug.mode=develop,trace 7 | --ENV-- 8 | XDEBUG_MODE=profile,debug 9 | --FILE-- 10 | 13 | --EXPECTF-- 14 | array(2) { 15 | [0]=> 16 | string(5) "debug" 17 | [1]=> 18 | string(7) "profile" 19 | } 20 | -------------------------------------------------------------------------------- /tests/library/xdebug_info-mode-004.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | xdebug_info("mode") with xdebug.mode=off, overridden by XDEBUG_MODE 3 | --INI-- 4 | display_errors=0 5 | error_log= 6 | xdebug.mode=off 7 | --ENV-- 8 | XDEBUG_MODE=gcstats,coverage 9 | --FILE-- 10 | 13 | --EXPECTF-- 14 | array(2) { 15 | [0]=> 16 | string(8) "coverage" 17 | [1]=> 18 | string(7) "gcstats" 19 | } 20 | -------------------------------------------------------------------------------- /tests/library/xdebug_info-mode-005.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | xdebug_info("mode") overridden by XDEBUG_MODE=off 3 | --INI-- 4 | display_errors=0 5 | error_log= 6 | xdebug.mode=gcstats,develop 7 | --ENV-- 8 | XDEBUG_MODE=off 9 | --FILE-- 10 | 13 | --EXPECTF-- 14 | array(0) { 15 | } 16 | -------------------------------------------------------------------------------- /tests/library/xdebug_mode_from_env-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | XDEBUG_MODE overrides xdebug.mode 3 | --INI-- 4 | display_errors=0 5 | error_log= 6 | xdebug.mode=develop 7 | --ENV-- 8 | XDEBUG_MODE=develop,profile 9 | --FILE-- 10 | 13 | --EXPECTF-- 14 | %Athrough 'XDEBUG_MODE' env variable%ADevelopment Helpers => ✔ enabled%AProfiler => ✔ enabled%A 15 | -------------------------------------------------------------------------------- /tests/library/xdebug_mode_warning-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | xdebug.mode: Warning for invalid modes 3 | --INI-- 4 | display_errors=0 5 | error_log= 6 | xdebug.mode=develop,nonexisting 7 | --FILE-- 8 | 10 | --EXPECTF-- 11 | Xdebug: [Config] Invalid mode 'develop,nonexisting' set for 'xdebug.mode' configuration setting (See: http%sdocs/errors#CFG-C-MODE) 12 | -------------------------------------------------------------------------------- /tests/library/xdebug_mode_warning-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | xdebug.mode: Warning for invalid modes 3 | --INI-- 4 | display_errors=0 5 | error_log= 6 | xdebug.mode=nonexisting,develop 7 | --FILE-- 8 | 10 | --EXPECTF-- 11 | Xdebug: [Config] Invalid mode 'nonexisting,develop' set for 'xdebug.mode' configuration setting (See: http%sdocs/errors#CFG-C-MODE) 12 | -------------------------------------------------------------------------------- /tests/profiler/bug00639.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/profiler/bug00643-t1.inc: -------------------------------------------------------------------------------- 1 | 30 | -------------------------------------------------------------------------------- /tests/profiler/bug00643-t2.inc: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/profiler/bug00785-001.inc: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /tests/profiler/bug00785-002.inc: -------------------------------------------------------------------------------- 1 | 28 | -------------------------------------------------------------------------------- /tests/profiler/bug01437.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1437: Add X-Xdebug-Profile-Filename header 3 | --ENV-- 4 | XDEBUG_CONFIG= 5 | --INI-- 6 | xdebug.mode=profile,develop 7 | xdebug.start_with_request=default 8 | xdebug.filename_format= 9 | xdebug.profiler_output_name=XDEBUG-PROFILE.%p 10 | --FILE-- 11 | 17 | --EXPECTF-- 18 | %sbug01437.php:4: 19 | array(2) { 20 | [0] => 21 | string(%d) "X-Xdebug-Profile-Filename: %sXDEBUG-PROFILE%s" 22 | [1] => 23 | string(13) "Location: bar" 24 | } 25 | -------------------------------------------------------------------------------- /tests/profiler/bug01571-002.inc: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /tests/profiler/bug01589-append.inc: -------------------------------------------------------------------------------- 1 | 1) { 3 | $foobar=substr('foobar', 1); 4 | } 5 | else { 6 | $foobar=''; 7 | } 8 | 9 | exit(); 10 | ?> 11 | -------------------------------------------------------------------------------- /tests/profiler/bug01589-prepend.inc: -------------------------------------------------------------------------------- 1 | 1) { 17 | $foobar=substr('foobar', 1); 18 | } 19 | else { 20 | $foobar=''; 21 | } 22 | 23 | $filename = xdebug_get_profiler_filename(); 24 | register_shutdown_function('capture'); 25 | ?> 26 | -------------------------------------------------------------------------------- /tests/profiler/bug01989.inc: -------------------------------------------------------------------------------- 1 | 8 | --INI-- 9 | xdebug.mode=profile 10 | xdebug.start_with_request=default 11 | xdebug.use_compression=0 12 | xdebug.profiler_output_name=cachegrind.out.%R.end 13 | --FILE-- 14 | 19 | --EXPECTF-- 20 | string(%d) "%send" 21 | %A 22 | -------------------------------------------------------------------------------- /tests/profiler/bug02001-zlib-compression.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2001: zlib, use_compression=1 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=profile 10 | xdebug.start_with_request=default 11 | xdebug.use_compression=1 12 | xdebug.profiler_output_name=cachegrind.out.%R.end 13 | --FILE-- 14 | 19 | --EXPECTF-- 20 | string(%d) "%send.gz" 21 | %A 22 | -------------------------------------------------------------------------------- /tests/profiler/bug02001-zlib-no-compression.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #2001: zlib, use_compression=0 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=profile 10 | xdebug.start_with_request=default 11 | xdebug.use_compression=0 12 | xdebug.profiler_output_name=cachegrind.out.%R.end 13 | --FILE-- 14 | 19 | --EXPECTF-- 20 | string(%d) "%send" 21 | %A 22 | -------------------------------------------------------------------------------- /tests/profiler/capture-profile.inc: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /tests/profiler/start_with_request_always_no_env.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Profiler: always, no environment 3 | --INI-- 4 | xdebug.mode=profile 5 | xdebug.start_with_request=yes 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 17 | --EXPECTF-- 18 | version: 1 19 | creator: xdebug %d.%s (PHP %s) 20 | cmd: %sstart_with_request_always_no_env.php 21 | part: 1 22 | positions: line 23 | 24 | events: Time_(10ns) Memory_(bytes) 25 | -------------------------------------------------------------------------------- /tests/profiler/start_with_request_always_no_match.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Profiler: always, no match 3 | --INI-- 4 | xdebug.mode=profile 5 | xdebug.start_with_request=yes 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 17 | --EXPECTF-- 18 | version: 1 19 | creator: xdebug %d.%s (PHP %s) 20 | cmd: %sstart_with_request_always_no_match.php 21 | part: 1 22 | positions: line 23 | 24 | events: Time_(10ns) Memory_(bytes) 25 | -------------------------------------------------------------------------------- /tests/profiler/start_with_request_default_no_env.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Profiler: default, no environment 3 | --INI-- 4 | xdebug.mode=profile 5 | xdebug.start_with_request=default 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 17 | --EXPECTF-- 18 | version: 1 19 | creator: xdebug %d.%s (PHP %s) 20 | cmd: %sstart_with_request_default_no_env.php 21 | part: 1 22 | positions: line 23 | 24 | events: Time_(10ns) Memory_(bytes) 25 | -------------------------------------------------------------------------------- /tests/profiler/start_with_request_default_no_match.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Profiler: default, no match 3 | --INI-- 4 | xdebug.mode=profile 5 | xdebug.start_with_request=default 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 17 | --EXPECTF-- 18 | version: 1 19 | creator: xdebug %d.%s (PHP %s) 20 | cmd: %sstart_with_request_default_no_match.php 21 | part: 1 22 | positions: line 23 | 24 | events: Time_(10ns) Memory_(bytes) 25 | -------------------------------------------------------------------------------- /tests/profiler/start_with_request_never_match.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Profiler: never, trigger match 3 | --INI-- 4 | xdebug.mode=profile 5 | xdebug.start_with_request=no 6 | xdebug.trigger_value=something 7 | xdebug.collect_return=0 8 | xdebug.collect_assignments=0 9 | --ENV-- 10 | XDEBUG_PROFILE=something 11 | --FILE-- 12 | 16 | --EXPECT-- 17 | bool(false) 18 | -------------------------------------------------------------------------------- /tests/profiler/start_with_request_never_no_env.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Profiler: never, no environment 3 | --INI-- 4 | xdebug.mode=profile 5 | xdebug.start_with_request=trigger 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 13 | --EXPECT-- 14 | bool(false) 15 | -------------------------------------------------------------------------------- /tests/profiler/start_with_request_trigger_no_env.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Profiler: trigger, no environment 3 | --INI-- 4 | xdebug.mode=profile 5 | xdebug.start_with_request=trigger 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 13 | --EXPECT-- 14 | bool(false) 15 | -------------------------------------------------------------------------------- /tests/profiler/start_with_request_trigger_no_match.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Profiler: trigger, no match 3 | --INI-- 4 | xdebug.mode=profile 5 | xdebug.start_with_request=trigger 6 | xdebug.trigger_value=something 7 | xdebug.collect_return=0 8 | xdebug.collect_assignments=0 9 | --FILE-- 10 | 14 | --EXPECT-- 15 | bool(false) 16 | -------------------------------------------------------------------------------- /tests/tracing/bug00002.inc: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /tests/tracing/bug00002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for traces to file 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | xdebug.trace_format=0 9 | --FILE-- 10 | 18 | --EXPECTF-- 19 | 20 | TRACE START [%d-%d-%d %d:%d:%d.%d] 21 | %f%w%d -> do_stuff() %sbug00002.php:6 22 | %f%w%d -> xdebug_stop_trace() %sbug00002.php:7 23 | %f%w%d 24 | TRACE END [%d-%d-%d %d:%d:%d.%d] 25 | -------------------------------------------------------------------------------- /tests/tracing/bug00003.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #3: Crash tracing to file 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | xdebug.trace_format=0 9 | date.timezone=Europe/Oslo 10 | --FILE-- 11 | 16 | --EXPECTF-- 17 | %ATRACE START [%d-%d-%d %d:%d:%d.%d] 18 | %w%f%w%d -> printf($format = '%s', ...$values = variadic(%s)) %sbug00003.php:3 19 | %w%f%w%d -> xdebug_stop_trace() %sbug00003.php:4 20 | %w%f%w%d 21 | TRACE END [%d-%d-%d %d:%d:%d.%d] 22 | -------------------------------------------------------------------------------- /tests/tracing/bug00690-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #690: Function traces are not appended to file when xdebug_start_trace() is used with xdebug.trace_options=1 (step 1 of 2) 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=trace 10 | xdebug.trace_output_name=trace.bug690 11 | xdebug.trace_options=1 12 | xdebug.start_with_request=no 13 | xdebug.use_compression=0 14 | --FILE-- 15 | 23 | --EXPECTF-- 24 | %strace.bug690.xt%S 25 | -------------------------------------------------------------------------------- /tests/tracing/bug00699.inc: -------------------------------------------------------------------------------- 1 | data[] = $var; 7 | } 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | public function count() : int { 17 | return count($this->data); 18 | } 19 | } 20 | ?> 21 | -------------------------------------------------------------------------------- /tests/tracing/bug00847-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #847: %s doesn't work in xdebug.trace_output_name (auto_trace) 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.trace_format=0 6 | xdebug.start_with_request=yes 7 | xdebug.trace_output_name=trace.%s 8 | xdebug.trace_options=1 9 | --FILE-- 10 | 16 | --EXPECTF-- 17 | %strace.%s_tests_tracing_bug00847-001_php.xt%S 18 | -------------------------------------------------------------------------------- /tests/tracing/bug00847-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #847: %s doesn't work in xdebug.trace_output_name (xdebug_start_trace) 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.trace_format=0 6 | xdebug.trace_output_name=trace.%s 7 | xdebug.trace_options=1 8 | xdebug.start_with_request=no 9 | --FILE-- 10 | 16 | --EXPECTF-- 17 | %strace.%s_tests_tracing_bug00847-002_php.xt%S 18 | -------------------------------------------------------------------------------- /tests/tracing/bug01112.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1112: Setting an invalid xdebug.trace_format causes Xdebug to crash 3 | --SKIPIF-- 4 | 8 | --INI-- 9 | xdebug.mode=trace,develop 10 | xdebug.start_with_request=yes 11 | xdebug.trace_output_name=trace.%p.%r 12 | xdebug.trace_format=42 13 | log_errors=0 14 | --FILE-- 15 | 18 | --EXPECTF-- 19 | Notice: A wrong value for xdebug.trace_format was selected (42), defaulting to the textual format in %s/bug01112.php on line 2 20 | 21 | 2 22 | -------------------------------------------------------------------------------- /tests/tracing/bug01215.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1215: SIGSEGV if xdebug.output_dir directory does not exist 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=default 6 | xdebug.output_dir=/tmp/jumberwocky 7 | --FILE-- 8 | 11 | --EXPECT-- 12 | 3 13 | -------------------------------------------------------------------------------- /tests/tracing/bug01829.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1829: Range and precision of time 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.trace_format=0 6 | xdebug.start_with_request=no 7 | xdebug.collect_assignments=0 8 | xdebug.collect_return=0 9 | --FILE-- 10 | 17 | --EXPECTF-- 18 | int(42) 19 | TRACE START [20%d-%d-%d %d:%d:%d.%d] 20 | %w0.%d %w%d -> var_dump($value = 42) %sbug01829.php:4 21 | %w0.%d %w%d -> xdebug_stop_trace() %sbug01829.php:6 22 | %w0.%d %w%d 23 | TRACE END [20%d-%d-%d %d:%d:%d.%d] 24 | -------------------------------------------------------------------------------- /tests/tracing/bug01903-001.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1903: Tracing constants are only defined with mode=tracing 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 9 | --EXPECT-- 10 | 1 2 4 11 | -------------------------------------------------------------------------------- /tests/tracing/bug01903-002.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1903: Tracing constants should be defined with mode=off 3 | --INI-- 4 | xdebug.mode=off 5 | --FILE-- 6 | 13 | --EXPECT-- 14 | bool(true) 15 | bool(true) 16 | bool(true) 17 | -------------------------------------------------------------------------------- /tests/tracing/bug01927.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1927: Crash when calling xdebug_stop_trace without a trace in progress 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | --FILE-- 7 | 10 | --EXPECTF-- 11 | %sFunction trace was not started in %s 12 | bool(false) 13 | -------------------------------------------------------------------------------- /tests/tracing/bug01944.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1944: tracing is started without trigger, when profiler is also enabled 3 | --INI-- 4 | xdebug.mode=trace,profile 5 | xdebug.start_with_request=default 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 18 | --EXPECTF-- 19 | bool(false) 20 | string(%d) "%s" 21 | -------------------------------------------------------------------------------- /tests/tracing/bug01954.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for bug #1954: Calling xdebug_start_trace without mode including tracing results in a fatal error 3 | --SKIPIF-- 4 | 7 | --INI-- 8 | xdebug.mode=off 9 | --FILE-- 10 | 16 | --EXPECTF-- 17 | Notice: Functionality is not enabled in %sbug01954.php on line %d 18 | NULL 19 | -------------------------------------------------------------------------------- /tests/tracing/bug02214.inc: -------------------------------------------------------------------------------- 1 | "\n", 8 | "\r" => "\r", 9 | "\r\n" => "\r\n", 10 | ]); 11 | ?> 12 | -------------------------------------------------------------------------------- /tests/tracing/call_user_func_array-002.inc: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/tracing/capture-trace.inc: -------------------------------------------------------------------------------- 1 | 24 | -------------------------------------------------------------------------------- /tests/tracing/fiber-001.inc: -------------------------------------------------------------------------------- 1 | start(); 36 | $fiberB->start(); 37 | $fiberA->resume(); 38 | $fiberB->resume(); 39 | -------------------------------------------------------------------------------- /tests/tracing/function_counter.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for xdebug_get_function_count 3 | --INI-- 4 | xdebug.mode=develop 5 | --FILE-- 6 | 15 | --EXPECT-- 16 | 1 17 | 11 18 | -------------------------------------------------------------------------------- /tests/tracing/internal-parameters.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for internal parameters 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | xdebug.trace_format=0 9 | --FILE-- 10 | 17 | --EXPECTF-- 18 | 55555 19 | TRACE START [%d-%d-%d %d:%d:%d.%d] 20 | %w%f %w%d -> str_repeat($%s = '5', $%s = 5) %sinternal-parameters.php:4 21 | %w%f %w%d -> xdebug_stop_trace() %sinternal-parameters.php:6 22 | %w%f %w%d 23 | TRACE END [%d-%d-%d %d:%d:%d.%d] 24 | -------------------------------------------------------------------------------- /tests/tracing/start_trace.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | xdebug_start_trace() without filename 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | xdebug.collect_return=1 7 | xdebug.collect_assignments=0 8 | xdebug.trace_format=0 9 | xdebug.trace_output_name=trace.%c 10 | xdebug.use_compression=0 11 | --FILE-- 12 | 18 | --EXPECTF-- 19 | %strace.%d.xt 20 | -------------------------------------------------------------------------------- /tests/tracing/start_with_request_default_no_env.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Tracing: default, no environment 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.trigger_value=FOOBAR 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 13 | --EXPECTF-- 14 | bool(false) 15 | -------------------------------------------------------------------------------- /tests/tracing/start_with_request_never_match.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Tracing: never, trigger match 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | xdebug.trigger_value=SOMETHING 7 | xdebug.collect_return=0 8 | xdebug.collect_assignments=0 9 | --ENV-- 10 | XDEBUG_TRACE=SOMETHING 11 | --FILE-- 12 | 16 | --EXPECTF-- 17 | bool(false) 18 | -------------------------------------------------------------------------------- /tests/tracing/start_with_request_never_no_env.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Tracing: never, no environment 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 13 | --EXPECTF-- 14 | bool(false) 15 | -------------------------------------------------------------------------------- /tests/tracing/start_with_request_trigger_no_env.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Tracing: trigger, no environment 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.trigger_value=FOOBAR 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | --FILE-- 9 | 13 | --EXPECTF-- 14 | bool(false) 15 | -------------------------------------------------------------------------------- /tests/tracing/start_with_request_trigger_no_match.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Starting Tracing: trigger, no trigger match 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=trigger 6 | xdebug.trigger_value=FOOBAR 7 | xdebug.collect_return=0 8 | xdebug.collect_assignments=0 9 | --ENV-- 10 | XDEBUG_TRACE=SOMETHINGELSE 11 | --FILE-- 12 | 16 | --EXPECTF-- 17 | bool(false) 18 | -------------------------------------------------------------------------------- /tests/tracing/static-method-calls.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for static method calls 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | xdebug.collect_return=0 7 | xdebug.collect_assignments=0 8 | xdebug.trace_format=0 9 | --FILE-- 10 | 22 | --EXPECTF-- 23 | test 24 | TRACE START [%d-%d-%d %d:%d:%d.%d] 25 | %w%f %w%d -> DB::query($s = 'test') %sstatic-method-calls.php:9 26 | %w%f %w%d -> xdebug_stop_trace() %sstatic-method-calls.php:11 27 | %w%f %w%d 28 | TRACE END [%d-%d-%d %d:%d:%d.%d] 29 | -------------------------------------------------------------------------------- /tests/tracing/test11.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Test for indirect function call 3 | --INI-- 4 | xdebug.mode=trace 5 | xdebug.start_with_request=no 6 | xdebug.collect_return=1 7 | xdebug.collect_assignments=0 8 | xdebug.trace_format=0 9 | --FILE-- 10 | 22 | --EXPECTF-- 23 | TRACE START [%d-%d-%d %d:%d:%d.%d] 24 | %w%f %w%d -> blaat() %stest11.php:9 25 | %w%f %w%d >=> NULL 26 | %w%f %w%d -> xdebug_stop_trace() %stest11.php:11 27 | %w%f %w%d 28 | TRACE END [%d-%d-%d %d:%d:%d.%d] 29 | -------------------------------------------------------------------------------- /tests/tracing/test_class.inc: -------------------------------------------------------------------------------- 1 | hang(); 11 | } 12 | } 13 | ?> 14 | 15 | --------------------------------------------------------------------------------