reverse-debugging

How does reverse debugging work?

那年仲夏 提交于 2019-11-28 15:27:25
GDB has a new version out that supports reverse debug (see http://www.gnu.org/software/gdb/news/reversible.html ). I got to wondering how that works. To get reverse debug to work it seems to me that you need to store the entire machine state including memory for each step. This would make performance incredibly slow, not to mention using a lot of memory. How are these problems solved? I'm a gdb maintainer and one of the authors of the new reverse debugging. I'd be happy to talk about how it works. As several people have speculated, you need to save enough machine state that you can restore

gdb reverse debugging fails with “Process record does not support instruction 0xf0d at address”

北城以北 提交于 2019-11-28 08:13:30
问题 i started to try reverse debugging with gdb 7, followin the tutorial: http://www.sourceware.org/gdb/wiki/ProcessRecord/Tutorial and I thought, great! Then I started to debug a real program which gives an error at the end. So I run it with gdb, and I put a breakpoint just before the place I think the error appears. Then I type "record" in order to start to recrd actions for future reverse-debugging. But after some steps I get Process record doesn't support instruction 0xf0d at address

How to run record instruction-history and function-call-history in GDB?

被刻印的时光 ゝ 提交于 2019-11-27 18:05:52
问题 (EDIT: per the first answer below the current "trick" seems to be using an Atom processor. But I hope some gdb guru can answer if this is a fundamental limitation, or whether there adding support for other processors is on the roadmap?) Reverse execution seems to be working in my environment: I can reverse-continue, see a plausible record log, and move around within it: (gdb) start ...Temporary breakpoint 5 at 0x8048460: file bang.cpp, line 13. Starting program: /home/thomasg/temp/./bang

How to do bidirectional or reverse debugging of programs?

*爱你&永不变心* 提交于 2019-11-27 12:11:32
Has anyone actually used a reversable debugger? The only product that Google turns up is UndoDB . It is for apparently for Linux only. The latest gdb version 7.0 (released this week) supports reverse debugging on a number of platforms (eg. native i386 and x86_64 linux, VMware workstation, UndoDB, and Simics simulators from Virtutech). ftp://ftp.gnu.org/pub/gdb It works with the latest preview / pre-release of VMware workstation 7.0, which also supports reverse debugging of MSWindows guests using Visual Studio debugger. Get a free trial download of workstation 7.0 at http://communities.vmware

How does reverse debugging work?

巧了我就是萌 提交于 2019-11-27 09:12:10
问题 GDB has a new version out that supports reverse debug (see http://www.gnu.org/software/gdb/news/reversible.html). I got to wondering how that works. To get reverse debug to work it seems to me that you need to store the entire machine state including memory for each step. This would make performance incredibly slow, not to mention using a lot of memory. How are these problems solved? 回答1: I'm a gdb maintainer and one of the authors of the new reverse debugging. I'd be happy to talk about how

How to do bidirectional or reverse debugging of programs?

北战南征 提交于 2019-11-26 15:58:18
问题 Has anyone actually used a reversable debugger? The only product that Google turns up is UndoDB. It is for apparently for Linux only. 回答1: The latest gdb version 7.0 (released this week) supports reverse debugging on a number of platforms (eg. native i386 and x86_64 linux, VMware workstation, UndoDB, and Simics simulators from Virtutech). ftp://ftp.gnu.org/pub/gdb It works with the latest preview / pre-release of VMware workstation 7.0, which also supports reverse debugging of MSWindows