Skip to content

Commit 32dcc3d

Browse files
committed
Go with 3.5.0
1 parent 3a2b6a2 commit 32dcc3d

File tree

4 files changed

+178
-44
lines changed

4 files changed

+178
-44
lines changed

package.xml

Lines changed: 71 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,24 +40,41 @@ Code Coverage Analysis
4040
<active>yes</active>
4141
</lead>
4242

43-
<date>2025-11-12</date>
44-
<time>17:30:23</time>
43+
<date>2025-12-04</date>
44+
<time>14:55:24</time>
4545
<version>
46-
<release>3.5.0alpha3</release>
47-
<api>3.5.0alpha3</api>
46+
<release>3.5.0</release>
47+
<api>3.5.0</api>
4848
</version>
4949
<stability>
50-
<release>beta</release>
51-
<api>beta</api>
50+
<release>stable</release>
51+
<api>stable</api>
5252
</stability>
5353
<license uri="https://xdebug.org/license/1.03" filesource="LICENSE">Xdebug-1.03</license>
5454
<notes>
55-
Wed, Nov 12, 2025 - Xdebug 3.5.0alpha3
55+
Thu, Dec 04, 2025 - Xdebug 3.5.0
56+
57+
+ New features:
58+
59+
- Fixed issue #2338: Add experimental support for Windows Named Pipes control socket
60+
- Fixed issue #2369: Implement &quot;Native Xdebug Path Mapping&quot; project
61+
- Fixed issue #2370: PHP 8.5 support
62+
63+
+ Improvements:
64+
65+
- Fixed issue #2213: Expose __EXCEPTION virtual variable for current EG(exception)
66+
- Fixed issue #2363: Add better debugging support for PHP 8.5&#039;s pipes
67+
- Fixed issue #2345: DBGP&#039;s detach does not support base64 encoded strings
5668

5769
= Fixed bugs:
5870

71+
- Fixed issue #2335: Failed dbgp connection is not marked as not active
72+
- Fixed issue #2336: Optimise xdebug_init_oparray
73+
- Fixed issue #2337: Modify xdebug_add_stack_frame to always work on the passed execute_data
74+
- Fixed issue #2367: Debugger should not break on return out of include files when return value debugger is enabled
5975
- Fixed issue #2372: Build failed on MSVC
6076
- Fixed issue #2374: Breakpoints in mapped paths don&#039;t trigger as they&#039;re mapped back before matching
77+
- Fixed issue #2386: Crashes when running context_get in an exception thrown from an internal function
6178

6279
</notes>
6380

@@ -228,6 +245,29 @@ Wed, Nov 12, 2025 - Xdebug 3.5.0alpha3
228245
<zendextsrcrelease />
229246
<changelog>
230247

248+
<release>
249+
<date>2025-11-12</date>
250+
<time>17:30:23</time>
251+
<version>
252+
<release>3.5.0alpha3</release>
253+
<api>3.5.0alpha3</api>
254+
</version>
255+
<stability>
256+
<release>beta</release>
257+
<api>beta</api>
258+
</stability>
259+
<license uri="https://xdebug.org/license/1.03" filesource="LICENSE">Xdebug-1.03</license>
260+
<notes>
261+
Wed, Nov 12, 2025 - Xdebug 3.5.0alpha3
262+
263+
= Fixed bugs:
264+
265+
- Fixed issue #2372: Build failed on MSVC
266+
- Fixed issue #2374: Breakpoints in mapped paths don&#039;t trigger as they&#039;re mapped back before matching
267+
268+
</notes>
269+
</release>
270+
231271
<release>
232272
<date>2025-10-07</date>
233273
<time>11:57:01</time>
@@ -265,6 +305,30 @@ Tue, Oct 07, 2025 - Xdebug 3.5.0alpha2
265305
</notes>
266306
</release>
267307

308+
<release>
309+
<date>2025-10-26</date>
310+
<time>13:37:32</time>
311+
<version>
312+
<release>3.4.7</release>
313+
<api>3.4.7</api>
314+
</version>
315+
<stability>
316+
<release>stable</release>
317+
<api>stable</api>
318+
</stability>
319+
<license uri="https://xdebug.org/license/1.03" filesource="LICENSE">Xdebug-1.03</license>
320+
<notes>
321+
Sun, Oct 26, 2025 - Xdebug 3.4.7
322+
323+
= Fixed bugs:
324+
325+
- Fixed issue #2359: PHP 8.4 Lazy Ghost Object inoperable/defunct when Xdebug is enabled
326+
- Fixed issue #2371: Step debugging initialize lazy objects
327+
- Fixed issue #2375: Xdebug&#039;s exception trace conversion initialises lazy objects
328+
329+
</notes>
330+
</release>
331+
268332
<release>
269333
<date>2025-10-06</date>
270334
<time>09:45:27</time>

php_xdebug.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#define PHP_XDEBUG_H
1919

2020
#define XDEBUG_NAME "Xdebug"
21-
#define XDEBUG_VERSION "3.5.0alpha4-dev"
21+
#define XDEBUG_VERSION "3.5.0"
2222
#define XDEBUG_AUTHOR "Derick Rethans"
2323
#define XDEBUG_COPYRIGHT "Copyright (c) 2002-2025 by Derick Rethans"
2424
#define XDEBUG_COPYRIGHT_SHORT "Copyright (c) 2002-2025"

template.rc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
1414
# define THANKS_GUYS ""
1515
#endif
1616

17-
#define VERSIONDESC 3,5,0,6
18-
#define VERSIONSTR "3.5.0alpha4-dev"
17+
#define VERSIONDESC 3,5,0,7
18+
#define VERSIONSTR "3.5.0"
1919

2020
//Version
2121
VS_VERSION_INFO VERSIONINFO

xdebug.ini

Lines changed: 104 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
; This file is generated by the 'xdebug.org:html/docs/convert.php' robot
2-
; for Xdebug 3.5.0alpha3 — do not modify by hand
2+
; for Xdebug 3.5.0 — do not modify by hand
33

44
; -----------------------------------------------------------------------------
55
; xdebug.cli_color
@@ -219,6 +219,53 @@
219219
;
220220
;xdebug.connect_timeout_ms = 200
221221

222+
; -----------------------------------------------------------------------------
223+
; xdebug.control_socket
224+
;
225+
; Introduced in version 3.3
226+
;
227+
; Type: string, Default value: "default"
228+
;
229+
; Linux and Windows *only*.
230+
;
231+
; When set to ``"default"`` (the default value) or ``"time"``, then Xdebug will
232+
; poll an anonymous pipe (Linux) or Named Pipe (Windows) every 25 ms for a
233+
; command.
234+
;
235+
; A command can currently be used to:
236+
;
237+
; - request process information (time, memory usage, and entry file)
238+
;
239+
; - initiate a debugging session by (trying to) connect to the IDE
240+
;
241+
; - force a breakpoint
242+
;
243+
; You should use the Xdebug Control tool to interact with this control socket.
244+
;
245+
; When this setting is set to ``"off"``, then Xdebug will not create a control
246+
; socket, and hence you can't send commands to it.
247+
;
248+
; | If your system (or container) does not have a reliable TSC clock, then "default" does not enable control sockets. You have to change this setting to "time" instead.
249+
; |
250+
; | This is to prevent slowing down PHP by wasting time to check the current time through a slow clock interface.
251+
; |
252+
; | If Xdebug detects that the TSC clock is not available, it will print a warning in the log file.
253+
; |
254+
; | You can find out which clock source Xdebug has detected in xdebug_info() output.
255+
; |
256+
; |
257+
;
258+
; .. note::
259+
;
260+
; You can programatically check whether control sockets are enabled for your
261+
; PHP build by calling xdebug_info() with ``extension-flags`` as category. If
262+
; control sockets are available, then ``control-socket`` is returned in the
263+
; resulting array. If a TSC clock is available, then ``tsc`` is also present
264+
; in the resulting array.
265+
;
266+
;
267+
;xdebug.control_socket = "default"
268+
222269
; -----------------------------------------------------------------------------
223270
; xdebug.discover_client_host
224271
;
@@ -621,7 +668,7 @@
621668
; ERR: File '/foo/cachegrind.out.2693358' could not be opened.
622669
; WARN: /foo: No such file or directory
623670
;
624-
; For Function Trace:
671+
; For Function Trace and Flame Graphs:
625672
;
626673
; ERR: File '/foo/trace.1485761369' could not be opened.
627674
; WARN: /foo: No such file or directory
@@ -689,9 +736,7 @@
689736
; Many Linux distributions now use systemd, which implements **private tmp**
690737
; directories. This means that when PHP is run through a web server or as
691738
; PHP-FPM, the ``/tmp`` directory is prefixed with something akin to:
692-
;
693-
; /tmp/systemd-private-ea3cfa882b4e478993e1994033fc5feb-apache.service-FfWZRg
694-
;
739+
; ``/tmp/systemd-private-ea3cfa882b4e478993e1994033fc5feb-apache.service-FfWZRg``
695740
;
696741
; .. note::
697742
;
@@ -821,9 +866,13 @@
821866
; KCacheGrind [2].
822867
;
823868
; trace
824-
; Enables the Function Trace feature, which allows you record every function
825-
; call, including arguments, variable assignment, and return value that is
826-
; made during a request to a file.
869+
; Enables the Function Trace and Flame Graphs features.
870+
;
871+
; The former allows you record every function call, including arguments,
872+
; variable assignment, and return value that is made during a request to a
873+
; file.
874+
;
875+
; The latter can be used to visualise certain performance characteristics.
827876
;
828877
; You can enable multiple modes at the same time by comma separating their
829878
; identifiers as value to xdebug.mode: ``xdebug.mode=develop,trace``.
@@ -874,6 +923,13 @@
874923
; ``XDEBUG_CONFIG``environment variable [1]. [1]
875924
; /docs/all_settings#XDEBUG_CONFIG
876925
;
926+
; .. warning::
927+
;
928+
; Many Linux distributions now use systemd, which implements **private tmp**
929+
; directories. This means that when PHP is run through a web server or as
930+
; PHP-FPM, the ``/tmp`` directory is prefixed with something akin to:
931+
; ``/tmp/systemd-private-ea3cfa882b4e478993e1994033fc5feb-apache.service-FfWZRg``
932+
;
877933
;
878934
;xdebug.output_dir = /tmp
879935

@@ -987,9 +1043,9 @@
9871043
;
9881044
; Type: string, Default value: default
9891045
;
990-
; A Function Trace, Garbage Collection Statistics, Profiling, or Step Debugging
991-
; can be activated at the start of a PHP request. Whether this happens depends
992-
; on the value of this setting:
1046+
; Step Debugging, a Function Trace, Flame Graphs, Garbage Collection Statistics,
1047+
; or Profiling can be activated at the start of a PHP request. Whether this
1048+
; happens depends on the value of this setting:
9931049
;
9941050
; yes
9951051
; The functionality starts when the PHP request starts, and before any PHP
@@ -1015,8 +1071,8 @@
10151071
; ``$_POST`` variable, or ``$_COOKIE`` (HTTP cookie name).
10161072
;
10171073
; There is a legacy fallback to a functionality specific trigger name:
1018-
; ``XDEBUG_PROFILE`` (for Profiling), ``XDEBUG_TRACE`` (for a Function
1019-
; Trace), and ``XDEBUG_SESSION`` (for Step Debugging).
1074+
; ``XDEBUG_PROFILE`` (for Profiling), ``XDEBUG_TRACE`` (for a Function Trace
1075+
; or Flame Graphs), and ``XDEBUG_SESSION`` (for Step Debugging).
10201076
;
10211077
; There is another legacy trigger for Step Debugging only. If you set the
10221078
; ``XDEBUG_CONFIG`` environment variable to any value, then the step
@@ -1066,41 +1122,47 @@
10661122
; table below lists the fields in each type of record. Fields are tab separated.
10671123
; ----- ------------------------------------------------------------------------------
10681124
; 2 writes a trace formatted in (simple) HTML.
1125+
; ----- ------------------------------------------------------------------------------
1126+
; 3 writes a "cost" flame graph. See the documentation on Flame Graphs for more
1127+
; information.
1128+
; ----- ------------------------------------------------------------------------------
1129+
; 4 writes a "memory usage" flame graph. See the documentation on Flame Graphs for
1130+
; more information.
10691131
; ===== ==============================================================================
10701132
;
10711133
; Fields for the computerized format, depend on the record type.
10721134
;
10731135
; *Entry Line*
10741136
;
1075-
; ===== =================================================================
1137+
; ===== ===================================================================
10761138
; Field Description
1077-
; ===== =================================================================
1139+
; ===== ===================================================================
10781140
; 1 level
1079-
; ----- -----------------------------------------------------------------
1141+
; ----- -------------------------------------------------------------------
10801142
; 2 function #
1081-
; ----- -----------------------------------------------------------------
1143+
; ----- -------------------------------------------------------------------
10821144
; 3 always
10831145
;
10841146
; '0'
1085-
; ----- -----------------------------------------------------------------
1147+
; ----- -------------------------------------------------------------------
10861148
; 4 time index
1087-
; ----- -----------------------------------------------------------------
1149+
; ----- -------------------------------------------------------------------
10881150
; 5 memory usage
1089-
; ----- -----------------------------------------------------------------
1151+
; ----- -------------------------------------------------------------------
10901152
; 6 function name
1091-
; ----- -----------------------------------------------------------------
1153+
; ----- -------------------------------------------------------------------
10921154
; 7 user-defined (1) or internal function (0)
1093-
; ----- -----------------------------------------------------------------
1155+
; ----- -------------------------------------------------------------------
10941156
; 8 name of the include or require file
1095-
; ----- -----------------------------------------------------------------
1157+
; ----- -------------------------------------------------------------------
10961158
; 9 filename
1097-
; ----- -----------------------------------------------------------------
1159+
; ----- -------------------------------------------------------------------
10981160
; 10 line number
1099-
; ----- -----------------------------------------------------------------
1161+
; ----- -------------------------------------------------------------------
11001162
; 11 no. of arguments
1101-
; ----- -----------------------------------------------------------------
1102-
; 12.. arguments (as many as specified in field 11) — tab separated
1103-
; ===== =================================================================
1163+
; ----- -------------------------------------------------------------------
1164+
; 12.. arguments (as many as specified in field 11) — tab separated
1165+
; ===== ===================================================================
11041166
;
11051167
; *Exit Line*
11061168
;
@@ -1152,26 +1214,34 @@
11521214
;
11531215
; This settings accepts a bitfield to enable options:
11541216
;
1155-
; 1
1217+
; 0x01
11561218
; Trace file data will be appended to an already existing file with the same
11571219
; name, instead of it being overwritten.
11581220
;
1159-
; 2
1221+
; 0x02
11601222
; Switches the file format to a tab separated format. The format is
11611223
; described in the xdebug.trace_format setting as "format 1".
11621224
;
1163-
; 4
1225+
; 0x04
11641226
; Switches to a file format that shows data as an HTML table
11651227
;
1166-
; 8
1228+
; 0x08
11671229
; With this bit set,
11681230
;
11691231
; ``.xt`` is not added automatically to the end of trace file names.
11701232
;
1233+
; 0x10
1234+
; Switches to a file format that provides information for "cost"
1235+
; flamegraphs.
1236+
;
1237+
; 0x20
1238+
; Switches to a file format that provides information for "memory usage"
1239+
; flamegraphs.
1240+
;
11711241
; To combine multiple flags, you can use bitwise-OR ( ``|``).
11721242
;
1173-
; ``xdebug.trace_options=2|8`` enables both the tab separated format, and stops
1174-
; the addition of ``.xt`` to the end of the file name.
1243+
; ``xdebug.trace_options=0x02|0x08`` enables both the tab separated format, and
1244+
; stops the addition of ``.xt`` to the end of the file name.
11751245
;
11761246
;
11771247
;xdebug.trace_options = 0

0 commit comments

Comments
 (0)