This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
[regression] gdb 7.11 breaks rr
- From: Kyle Huey <me at kylehuey dot com>
- To: gdb at sourceware dot org
- Cc: rr-dev <rr-dev at mozilla dot org>, Pedro Alves <palves at redhat dot com>
- Date: Mon, 16 May 2016 15:06:04 -0700
- Subject: [regression] gdb 7.11 breaks rr
- Authentication-results: sourceware.org; auth=none
(Resending because the gdb list rejects HTML mail, sorry for duplicates)
Steps to reproduce:
1. Clone rr from https://github.com/mozilla/rr.git
2. Build rr rev 8566e3038892
3. ./bin/rr record ./bin/reverse_continue_process_signal
4. ./bin/rr replay -d /path/to/gdb-7.11
5. c
6. Once, the program has reached the SIGKILL, b 22
7. rc
Instead of reversing to the fork on line 22, rr will stop again at the
SIGKILL.
Beginning with [0] gdb seems to forget which direction execution is heading
in when a signal is reported by the gdb server. When gdb resumes execution
after deciding to ignore the signal it sends a vCont instead of a bc to the
gdb server, causing rr to execute forwards again.
This was fixed after the release of gdb 7.11 by [1]. I verified that
cherry-picking this commit on top of the gdb-7.11-release tag also fixes
rr. Could we get this commit backported for a 7.11.1? rr's reverse
execution features are largely unusable with complex programs (e.g.
Firefox) because of this bug.
Thanks,
- Kyle
[0]
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=0b333c5e7d6c3fc65d37ffa11bd21ba52c4adb25
[1]
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=3a00c80277a54abe0b286a6e8babc8fe50120205