View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000958 | Xdebug | Uncategorized | public | 2013-07-04 14:42 | 2017-03-19 22:15 |
| Reporter | ericol | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | won't fix | ||
| Product Version | 2.2.1 | ||||
| Summary | 0000958: XDebug doesn't breakpoint at code called by preg_replace (Might affect other functions) | ||||
| Description | If you make preg_replace call a function when replacing some text, any breakpoint set in the function isn't honoured. | ||||
| Steps To Reproduce | In this code, place a breakpoint in line 5 ("echo $txt") and another in line 8 ("return 'h';"). Execution stops at line 5, but not at line 8. <?php $txt="AaAaAaAaAa"; function replace($txt) { | ||||
| Tags | Doesn't Break | ||||
| Operating System | Windows 7 | ||||
| PHP Version | 5.3.1 | ||||
|
|
Could you create an accompanying remote debugging log with such a debugging session with that script? You can make one by turning on xdebug.remote_log=c:\temp\xdebug.log (or similar name of course). |
|
|
Hey, |
|
|
I've had a look at this and I can see what is wrong. Requires hackyness for preg replace and "regexp code" in filename checks. |
|
|
I had a look at this again, and the /e modifier is no longer available in PHP 7.x for preg_replace - instead, you need to use preg_match_replace. As this is sort of a new feature, which would only apply for PHP 5, I have decided not to add this new "hacky" functionality that relies on string matching a filename. |