View Issue Details

IDProjectCategoryView StatusLast Update
0000888XdebugStep Debuggingpublic2025-11-25 14:22
Reporterjeffv Assigned To 
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status acknowledgedResolutionopen 
Target Version3.6dev 
Summary0000888: Extend xdebug to support reverse debugging
Description

Reverse debugging allows you to run a program until there is a problem, then rewind to see why the problem happened. I does this by capturing state information.

Two examples of reverse debuggers are gdb, which has supported it since about 2009, and UndoDB.

Additional Information

Of course there would have to be some protocol extensions to support reverse debugging. Bonus: I don't think any of the competitive languages - Ruby, Python etc, would support this. This is a horrific technical challenge, I know.

TagsNo tags attached.
Operating System
PHP Version5.4.4

Relationships

has duplicate 0000908 resolvedderick Support for set-execution-point 
has duplicate 0001052 resolvedderick Allow for stepping backwards 

Activities

derick

2012-10-01 13:04

administrator   ~0002350

This might be possible, but it is going to take an enormous amount of effort. Don't expect this to happen any time soon :-)

jeffv

2012-10-02 00:29

reporter   ~0002355

Yep, not expecting it soon. Just wanted to put the thought into your mind.

I expect the gdb team would talk to you. And UndoDB is in Cambridge, UK, so not too far from you I think. If you are interested, I can introduce you. It's proprietary, but I expect they would chat.

I don't think you need to maintain full state at every statement. It's enough to keep it at key points, and then to roll forward from that point to the point at which you are debugging. Just saying. If you were starting to mull the idea.

jeffv

2016-10-13 21:57

reporter   ~0003720

https://github.com/sidkshatriya/dontbug reverse debugging for PHP.

reket

2016-10-17 18:58

reporter   ~0003725

What about native support?

derick

2016-12-11 23:30

administrator   ~0004005

I started working on this somewhere last year, but then PHP 7 happened and I had to spend a lot of time working on that. I would still like to do this, but I can't particularly say for which version.

slifin

2017-07-29 15:55

reporter   ~0004385

I know this would save a lot of work hours in our company alone

Is there anything I can do as a user to help make this happen?

cpriest

2018-04-30 17:16

reporter   ~0004642

Not sure if this is still in the cards, but I still use PhpED and their debugger for this functionality. Would sure be nice to have it in PhpStorm.