Target sim crashes when recording for reverse debugging; find_inferior_ptid returns null

William Tambe via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAF8i9mPVq6tGdXHxYNRfiX4+aCL2cqqWmSFcrY5gZrwDQ0uDbQ@mail.gmail.com>
../../iron-toolchain/binutils/gdb/process-stratum-target.c:47:
internal-error: virtual gdbarch*
process_stratum_target::thread_architecture(ptid_t): Assertion `inf !=
NULL' failed.

Above is the crash that occur after issuing following gdb commands:
target sim
load
record
si

The crash occurs because find_inferior_ptid() returns NULL.
From below backtrace, is it possible to determine what could be the
cause of find_inferior_ptid() returning NULL ?

(gdb) record
(gdb) si

Thread 1 "iron-elf-gdb" hit Breakpoint 1,
process_stratum_target::thread_architecture (this=<optimized out>,
ptid=...) at ../../iron-toolchain/binutils/gdb/process-stratum-target.c:47
47        gdb_assert (inf != NULL);
=> 0x00005555557cd709
<process_stratum_target::thread_architecture(ptid_t)+25>: 48 83 c4 20
   add    $0x20,%rsp
   0x00005555557cd70d
<process_stratum_target::thread_architecture(ptid_t)+29>: 48 85 c0
   test   %rax,%rax
   0x00005555557cd710
<process_stratum_target::thread_architecture(ptid_t)+32>: 74 0c   je
  0x5555557cd71e
<process_stratum_target::thread_architecture(ptid_t)+46>
(gdb) p inf
$2 = (inferior *) 0x555555cc3d90
(gdb) bt
#0  process_stratum_target::thread_architecture (this=<optimized out>,
ptid=...) at ../../iron-toolchain/binutils/gdb/process-stratum-target.c:47
#1  0x00005555557df091 in record_full_target::resume
(this=0x555555bc8fb0 <record_full_ops>, ptid=..., step=0,
signal=GDB_SIGNAL_0) at
../../iron-toolchain/binutils/gdb/record-full.c:1078
#2  0x0000555555865670 in target_resume (ptid=..., step=0,
signal=GDB_SIGNAL_0) at
../../iron-toolchain/binutils/gdb/target.h:1326
#3  0x00005555557531ab in do_target_resume (resume_ptid=..., step=0,
sig=GDB_SIGNAL_0) at ../../iron-toolchain/binutils/gdb/infrun.c:2264
#4  0x000055555575af02 in resume_1 (sig=GDB_SIGNAL_0) at
../../iron-toolchain/binutils/gdb/infrun.c:2653
#5  resume (sig=GDB_SIGNAL_0) at ../../iron-toolchain/binutils/gdb/infrun.c:2666
#6  0x000055555575bca0 in keep_going_pass_signal (ecs=0x7fffffffd870)
at ../../iron-toolchain/binutils/gdb/infrun.c:8044
#7  0x000055555575bfd1 in start_step_over () at
../../iron-toolchain/binutils/gdb/infrun.c:2049
#8  0x0000555555761f1e in proceed
(addr=addr@entry=18446744073709551615,
siggnal=siggnal@entry=GDB_SIGNAL_DEFAULT) at
../../iron-toolchain/binutils/gdb/infrun.c:3130
#9  0x000055555574b091 in step_1 (skip_subroutines=0,
single_inst=<optimized out>, count_string=<optimized out>) at
../../iron-toolchain/binutils/gdb/infcmd.c:1047
#10 0x000055555566125a in cmd_func (cmd=<optimized out>,
args=<optimized out>, from_tty=<optimized out>) at
../../iron-toolchain/binutils/gdb/cli/cli-decode.c:2004
#11 0x0000555555880073 in execute_command (p=<optimized out>,
p@entry=0x555555e2ec70 "si", from_tty=1) at
../../iron-toolchain/binutils/gdb/top.c:655
#12 0x000055555570c755 in command_handler (command=0x555555e2ec70
"si") at ../../iron-toolchain/binutils/gdb/event-top.c:588
#13 0x000055555570d631 in command_line_handler (rl=...) at
../../iron-toolchain/binutils/gdb/event-top.c:773
#14 0x000055555570cfcc in gdb_rl_callback_handler (rl=0x555555ccfb60
"si") at /usr/include/c++/9/bits/unique_ptr.h:153
#15 0x000055555590ffe8 in rl_callback_read_char () at
../../../iron-toolchain/binutils/readline/readline/callback.c:281
#16 0x000055555570c276 in gdb_rl_callback_read_char_wrapper_noexcept
() at ../../iron-toolchain/binutils/gdb/event-top.c:177
#17 0x000055555570ce85 in gdb_rl_callback_read_char_wrapper
(client_data=<optimized out>) at
../../iron-toolchain/binutils/gdb/event-top.c:193
#18 0x000055555570c198 in stdin_event_handler (error=<optimized out>,
client_data=0x555555c087e0) at
../../iron-toolchain/binutils/gdb/event-top.c:516
#19 0x0000555555993226 in gdb_wait_for_event (block=block@entry=1) at
../../iron-toolchain/binutils/gdbsupport/event-loop.cc:673
#20 0x000055555599349b in gdb_wait_for_event (block=1) at
../../iron-toolchain/binutils/gdbsupport/event-loop.cc:569
#21 gdb_do_one_event () at
../../iron-toolchain/binutils/gdbsupport/event-loop.cc:215
#22 0x00005555557856a5 in start_event_loop () at
../../iron-toolchain/binutils/gdb/main.c:356
#23 captured_command_loop () at ../../iron-toolchain/binutils/gdb/main.c:416
#24 0x00005555557875e5 in captured_main (data=<optimized out>) at
../../iron-toolchain/binutils/gdb/main.c:1254
#25 gdb_main (args=<optimized out>) at
../../iron-toolchain/binutils/gdb/main.c:1269
#26 0x00005555555da2b0 in main (argc=<optimized out>, argv=<optimized
out>) at ../../iron-toolchain/binutils/gdb/gdb.c:32
(gdb) c
Continuing.
iron-gdb: iron_process_record: addr == 0x1f448

Thread 1 "iron-elf-gdb" hit Breakpoint 1,
process_stratum_target::thread_architecture (this=<optimized out>,
ptid=...) at ../../iron-toolchain/binutils/gdb/process-stratum-target.c:47
47        gdb_assert (inf != NULL);
=> 0x00005555557cd709
<process_stratum_target::thread_architecture(ptid_t)+25>: 48 83 c4 20
   add    $0x20,%rsp
   0x00005555557cd70d
<process_stratum_target::thread_architecture(ptid_t)+29>: 48 85 c0
   test   %rax,%rax
   0x00005555557cd710
<process_stratum_target::thread_architecture(ptid_t)+32>: 74 0c   je
  0x5555557cd71e
<process_stratum_target::thread_architecture(ptid_t)+46>
(gdb) p inf
$3 = (inferior *) 0x555555cc3d90
(gdb) bt
#0  process_stratum_target::thread_architecture (this=<optimized out>,
ptid=...) at ../../iron-toolchain/binutils/gdb/process-stratum-target.c:47
#1  0x00005555557e56e3 in get_thread_regcache (target=0x555555bc9060
<gdbsim_ops>, ptid=...) at
../../iron-toolchain/binutils/gdb/regcache.c:373
#2  0x00005555557e57c4 in get_thread_regcache (thread=<optimized out>)
at ../../iron-toolchain/binutils/gdb/target.h:1323
#3  0x000055555575e507 in handle_signal_stop (ecs=0x7fffffffde10) at
../../iron-toolchain/binutils/gdb/infrun.c:5874
#4  0x000055555576061c in handle_inferior_event (ecs=<optimized out>)
at ../../iron-toolchain/binutils/gdb/infrun.c:5585
#5  0x00005555557615bd in fetch_inferior_event (client_data=<optimized
out>) at ../../iron-toolchain/binutils/gdb/infrun.c:4027
#6  0x000055555560b43a in check_async_event_handlers () at
../../iron-toolchain/binutils/gdb/async-event.c:295
#7  0x000055555599345b in gdb_do_one_event () at
../../iron-toolchain/binutils/gdbsupport/event-loop.cc:194
#8  0x00005555557856a5 in start_event_loop () at
../../iron-toolchain/binutils/gdb/main.c:356
#9  captured_command_loop () at ../../iron-toolchain/binutils/gdb/main.c:416
#10 0x00005555557875e5 in captured_main (data=<optimized out>) at
../../iron-toolchain/binutils/gdb/main.c:1254
#11 gdb_main (args=<optimized out>) at
../../iron-toolchain/binutils/gdb/main.c:1269
#12 0x00005555555da2b0 in main (argc=<optimized out>, argv=<optimized
out>) at ../../iron-toolchain/binutils/gdb/gdb.c:32
(gdb) c
Continuing.
0x0001f44a      713             struct task_struct *tsk = current;
=> 0x0001f44a <do_exit+14>:     f6 51   ld32 %5, %1
   0x0001f44c <do_exit+16>:     82 44   li8 %4, 0x24 # 36
   0x0001f44e <do_exit+18>:     b8 40   add %4, %sp
   0x0001f450 <do_exit+20>:     f2 54   st32 %5, %4
(gdb) si

Thread 1 "iron-elf-gdb" hit Breakpoint 1,
process_stratum_target::thread_architecture (this=<optimized out>,
ptid=...) at ../../iron-toolchain/binutils/gdb/process-stratum-target.c:47
47        gdb_assert (inf != NULL);
=> 0x00005555557cd709
<process_stratum_target::thread_architecture(ptid_t)+25>: 48 83 c4 20
   add    $0x20,%rsp
   0x00005555557cd70d
<process_stratum_target::thread_architecture(ptid_t)+29>: 48 85 c0
   test   %rax,%rax
   0x00005555557cd710
<process_stratum_target::thread_architecture(ptid_t)+32>: 74 0c   je
  0x5555557cd71e
<process_stratum_target::thread_architecture(ptid_t)+46>
(gdb) p inf
$4 = (inferior *) 0x0
(gdb) bt
#0  process_stratum_target::thread_architecture (this=<optimized out>,
ptid=...) at ../../iron-toolchain/binutils/gdb/process-stratum-target.c:47
#1  0x00005555557df091 in record_full_target::resume
(this=0x555555bc8fb0 <record_full_ops>, ptid=..., step=0,
signal=GDB_SIGNAL_0) at
../../iron-toolchain/binutils/gdb/record-full.c:1078
#2  0x0000555555865670 in target_resume (ptid=..., step=0,
signal=GDB_SIGNAL_0) at
../../iron-toolchain/binutils/gdb/target.h:1326
#3  0x00005555557531ab in do_target_resume (resume_ptid=..., step=0,
sig=GDB_SIGNAL_0) at ../../iron-toolchain/binutils/gdb/infrun.c:2264
#4  0x000055555575af02 in resume_1 (sig=GDB_SIGNAL_0) at
../../iron-toolchain/binutils/gdb/infrun.c:2653
#5  resume (sig=GDB_SIGNAL_0) at ../../iron-toolchain/binutils/gdb/infrun.c:2666
#6  0x000055555575bca0 in keep_going_pass_signal (ecs=0x7fffffffdac0)
at ../../iron-toolchain/binutils/gdb/infrun.c:8044
#7  0x000055555576254b in proceed
(addr=addr@entry=18446744073709551615,
siggnal=siggnal@entry=GDB_SIGNAL_DEFAULT) at
../../iron-toolchain/binutils/gdb/infrun.c:3198
#8  0x000055555574b091 in step_1 (skip_subroutines=0,
single_inst=<optimized out>, count_string=<optimized out>) at
../../iron-toolchain/binutils/gdb/infcmd.c:1047
#9  0x000055555566125a in cmd_func (cmd=<optimized out>,
args=<optimized out>, from_tty=<optimized out>) at
../../iron-toolchain/binutils/gdb/cli/cli-decode.c:2004
#10 0x0000555555880073 in execute_command (p=<optimized out>,
p@entry=0x5555560cdcd0 "si", from_tty=1) at
../../iron-toolchain/binutils/gdb/top.c:655
#11 0x000055555570c755 in command_handler (command=0x5555560cdcd0
"si") at ../../iron-toolchain/binutils/gdb/event-top.c:588
#12 0x000055555570d631 in command_line_handler (rl=...) at
../../iron-toolchain/binutils/gdb/event-top.c:773
#13 0x000055555570cfcc in gdb_rl_callback_handler (rl=0x5555560ca130
"si") at /usr/include/c++/9/bits/unique_ptr.h:153
#14 0x000055555590ffe8 in rl_callback_read_char () at
../../../iron-toolchain/binutils/readline/readline/callback.c:281
#15 0x000055555570c276 in gdb_rl_callback_read_char_wrapper_noexcept
() at ../../iron-toolchain/binutils/gdb/event-top.c:177
#16 0x000055555570ce85 in gdb_rl_callback_read_char_wrapper
(client_data=<optimized out>) at
../../iron-toolchain/binutils/gdb/event-top.c:193
#17 0x000055555570c198 in stdin_event_handler (error=<optimized out>,
client_data=0x555555c087e0) at
../../iron-toolchain/binutils/gdb/event-top.c:516
#18 0x0000555555993226 in gdb_wait_for_event (block=block@entry=1) at
../../iron-toolchain/binutils/gdbsupport/event-loop.cc:673
#19 0x000055555599349b in gdb_wait_for_event (block=1) at
../../iron-toolchain/binutils/gdbsupport/event-loop.cc:569
#20 gdb_do_one_event () at
../../iron-toolchain/binutils/gdbsupport/event-loop.cc:215
#21 0x00005555557856a5 in start_event_loop () at
../../iron-toolchain/binutils/gdb/main.c:356
#22 captured_command_loop () at ../../iron-toolchain/binutils/gdb/main.c:416
#23 0x00005555557875e5 in captured_main (data=<optimized out>) at
../../iron-toolchain/binutils/gdb/main.c:1254
#24 gdb_main (args=<optimized out>) at
../../iron-toolchain/binutils/gdb/main.c:1269
#25 0x00005555555da2b0 in main (argc=<optimized out>, argv=<optimized
out>) at ../../iron-toolchain/binutils/gdb/gdb.c:32
(gdb) c
Continuing.
../../iron-toolchain/binutils/gdb/process-stratum-target.c:47:
internal-error: virtual gdbarch*
process_stratum_target::thread_architecture(ptid_t): Assertion `inf !=
NULL' failed.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.