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.