From: Hannes Domani Date: Mon, 15 Jul 2024 14:29:36 +0000 (+0200) Subject: Fix loading a saved recording X-Git-Tag: binutils-2_43~125 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=25c228409597bcb7114a9a839ac08db0ba995418;p=thirdparty%2Fbinutils-gdb.git 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 --- diff --git a/gdb/record-full.c b/gdb/record-full.c index eb62d186fa5..ab854e0133f 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 d9377635dcf..9ae67b37f3f 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"