View Issue Details

IDProjectCategoryView StatusLast Update
0000888XdebugFeature/Change requestpublic2018-04-30 17:16
ReporterjeffvAssigned Toderick 
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status acknowledgedResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0000888: Extend xdebug to support reverse debugging
DescriptionReverse 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 InformationOf 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.

Issue History

Date Modified Username Field Change
2012-09-28 20:23 jeffv New Issue
2012-10-01 13:04 derick Note Added: 0002350
2012-10-02 00:29 jeffv Note Added: 0002355
2014-02-27 19:42 derick Relationship added related to 0000908
2016-10-13 21:57 jeffv Note Added: 0003720
2016-10-17 18:58 reket Note Added: 0003725
2016-12-11 13:00 derick Relationship replaced has duplicate 0000908
2016-12-11 13:06 derick Relationship added has duplicate 0001052
2016-12-11 23:30 derick Note Added: 0004005
2016-12-11 23:30 derick Assigned To => derick
2016-12-11 23:30 derick Status new => acknowledged
2017-07-29 15:55 slifin Note Added: 0004385
2018-04-30 17:16 cpriest Note Added: 0004642