aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorHannes Domani <ssbssa@yahoo.de>2024-07-15 16:29:36 +0200
committerHannes Domani <ssbssa@yahoo.de>2024-07-15 16:31:20 +0200
commit25c228409597bcb7114a9a839ac08db0ba995418 (patch)
tree0f8336fa2ac24acae6efc67cad129ca00154f661 /gdb
parent134a0a106c944234e9e4f0dd95af96986117d7d9 (diff)
downloadgdb-25c228409597bcb7114a9a839ac08db0ba995418.zip
gdb-25c228409597bcb7114a9a839ac08db0ba995418.tar.gz
gdb-25c228409597bcb7114a9a839ac08db0ba995418.tar.bz2
Fix loading a saved recording
Currently you get this assertion failure if you try to execute the inferior after loading a saved recording, when no recording was done earlier in the same gdb session: ``` $ gdb -q c -ex "record restore test.rec" Reading symbols from c... [New LWP 26428] Core was generated by `/tmp/c'. Restored records from core file /tmp/test.rec. (gdb) c Continuing. ../../gdb/inferior.c:293: internal-error: inferior* find_inferior_pid(process_stratum_target*, int): Assertion `pid != 0' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. ``` The change in step-precsave.exp triggers this bug, since now the recording is loaded in a new gdb session, where record_full_resume_ptid was never set. The fix is to simply set record_full_resume_ptid when resuming a loaded recording. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31971 Approved-By: Guinevere Larsen <blarsen@redhat.com>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/record-full.c1
-rw-r--r--gdb/testsuite/gdb.reverse/step-precsave.exp2
2 files changed, 3 insertions, 0 deletions
diff --git a/gdb/record-full.c b/gdb/record-full.c
index eb62d18..ab854e0 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -2073,6 +2073,7 @@ record_full_core_target::resume (ptid_t ptid, int step,
enum gdb_signal signal)
{
record_full_resume_step = step;
+ record_full_resume_ptid = ptid;
record_full_resumed = 1;
record_full_execution_dir = ::execution_direction;
}
diff --git a/gdb/testsuite/gdb.reverse/step-precsave.exp b/gdb/testsuite/gdb.reverse/step-precsave.exp
index d937763..9ae67b3 100644
--- a/gdb/testsuite/gdb.reverse/step-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/step-precsave.exp
@@ -69,6 +69,8 @@ with_timeout_factor 10 {
gdb_test "kill" "" "kill process, prepare to debug log file" \
"Kill the program being debugged\\? \\(y or n\\) " "y"
+clean_restart ${binfile}
+
gdb_test "record restore $precsave" \
"Restored records from core file .*" \
"reload core file"