Bug 28445 - inferior.c:300: internal-error: inferior* find_inferior_pid(process_stratum_target*, int): Assertion `pid != 0' failed
Summary: inferior.c:300: internal-error: inferior* find_inferior_pid(process_stratum_t...
Status: RESOLVED FIXED
Alias: None
Product: gdb
Classification: Unclassified
Component: record (show other bugs)
Version: HEAD
: P2 normal
Target Milestone: 12.1
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-10-12 09:40 UTC by Tom de Vries
Modified: 2022-01-27 13:04 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom de Vries 2021-10-12 09:40:30 UTC
[ Note: looks similar to PR28086. ]

When testing trunk with target board native-gdbserver, I run into:
...
(gdb) record btrace^M
(gdb) PASS: gdb.btrace/enable-new-thread.exp: record btrace
break 24^M
Breakpoint 2 at 0x40059f: file /home/vries/gdb_versions/devel/src/gdb/testsuite/gdb.btrace/enable-new-thread.c, line 24.^M
(gdb) continue^M
Continuing.^M
/home/vries/gdb_versions/devel/src/gdb/inferior.c:300: internal-error: inferior* find_inferior_pid(process_stratum_target*, int): Assertion `pid != 0' failed.^M
...

Backtrace generated by gdb, and piped through c++filt:
...
0x541bb8 gdb_internal_backtrace_1
        /home/vries/gdb_versions/devel/src/gdb/bt-utils.c:121
0x541c5b gdb_internal_backtrace()
        /home/vries/gdb_versions/devel/src/gdb/bt-utils.c:164
0xb541a5 internal_vproblem
        /home/vries/gdb_versions/devel/src/gdb/utils.c:393
0xb544a7 internal_verror(char const*, int, char const*, __va_list_tag*)
        /home/vries/gdb_versions/devel/src/gdb/utils.c:470
0xe31630 internal_error(char const*, int, char const*, ...)
        /home/vries/gdb_versions/devel/src/gdbsupport/errors.cc:55
0x7af942 find_inferior_pid(process_stratum_target*, int)
        /home/vries/gdb_versions/devel/src/gdb/inferior.c:300
0x7af9f8 find_inferior_ptid(process_stratum_target*, ptid_t)
        /home/vries/gdb_versions/devel/src/gdb/inferior.c:314
0xabbdc6 find_thread_ptid(process_stratum_target*, ptid_t)
        /home/vries/gdb_versions/devel/src/gdb/thread.c:492
0xaba8ca all_matching_threads_iterator::all_matching_threads_iterator(process_stratum_target*, ptid_t)
        /home/vries/gdb_versions/devel/src/gdb/thread-iter.c:125
0x52ce11 filtered_iterator<all_matching_threads_iterator, non_exited_thread_filter>::filtered_iterator<process_stratum_target* const&, ptid_t const&>(process_stratum_target* const&, ptid_t const&)
        /home/vries/gdb_versions/devel/src/gdb/../gdbsupport/filtered-iterator.h:42
0x52b8ca all_non_exited_threads_range::begin() const
        /home/vries/gdb_versions/devel/src/gdb/thread-iter.h:243
0x948a48 record_btrace_target::record_is_replaying(ptid_t)
        /home/vries/gdb_versions/devel/src/gdb/record-btrace.c:1411
0x948b5b record_btrace_target::xfer_partial(target_object, char const*, unsigned char*, unsigned char const*, unsigned long, unsigned long, unsigned long*)
        /home/vries/gdb_versions/devel/src/gdb/record-btrace.c:1437
0xaa0409 target_xfer_partial(target_ops*, target_object, char const*, unsigned char*, unsigned char const*, unsigned long, unsigned long, unsigned long*)
        /home/vries/gdb_versions/devel/src/gdb/target.c:1740
0xaa0b54 target_read_partial
        /home/vries/gdb_versions/devel/src/gdb/target.c:1975
0xab4f1e gdb::optional<std::vector<char, gdb::default_init_allocator<char, std::allocator<char> > > > target_read_alloc_1<char>(target_ops*, target_object, char const*)
        /home/vries/gdb_versions/devel/src/gdb/target.c:2309
0xaa14aa target_read_stralloc(target_ops*, target_object, char const*)
        /home/vries/gdb_versions/devel/src/gdb/target.c:2348
0x987589 btrace_read_config
        /home/vries/gdb_versions/devel/src/gdb/remote.c:14071
0x987acd remote_target::enable_btrace(ptid_t, btrace_config const*)
        /home/vries/gdb_versions/devel/src/gdb/remote.c:14185
0xaafd53 target_ops::enable_btrace(ptid_t, btrace_config const*)
        /home/vries/gdb_versions/devel/src/gdb/target-delegates.c:3789
0xab313e target_enable_btrace(ptid_t, btrace_config const*)
        /home/vries/gdb_versions/devel/src/gdb/target.c:4043
0x5447bc btrace_enable(thread_info*, btrace_config const*)
        /home/vries/gdb_versions/devel/src/gdb/btrace.c:1621
0x9462f0 record_btrace_enable_warn
        /home/vries/gdb_versions/devel/src/gdb/record-btrace.c:294
0x859f10 std::_Function_handler<void (thread_info*), void (*)(thread_info*)>::_M_invoke(std::_Any_data const&, thread_info*&&)
        /usr/include/c++/7/bits/std_function.h:316
0xac27d8 std::function<void (thread_info*)>::operator()(thread_info*) const
        /usr/include/c++/7/bits/std_function.h:706
0xac1685 gdb::observers::observable<thread_info*>::notify(thread_info*) const
        /home/vries/gdb_versions/devel/src/gdb/../gdbsupport/observable.h:150
0xabb22e add_thread_silent(process_stratum_target*, ptid_t)
        /home/vries/gdb_versions/devel/src/gdb/thread.c:263
0xabb25e add_thread_with_info(process_stratum_target*, ptid_t, private_thread_info*)
        /home/vries/gdb_versions/devel/src/gdb/thread.c:272
0xabb332 add_thread(process_stratum_target*, ptid_t)
        /home/vries/gdb_versions/devel/src/gdb/thread.c:286
0x96d44b remote_target::remote_add_thread(ptid_t, bool, bool)
        /home/vries/gdb_versions/devel/src/gdb/remote.c:2544
0x96d716 remote_target::remote_notice_new_inferior(ptid_t, bool)
        /home/vries/gdb_versions/devel/src/gdb/remote.c:2633
0x9793a4 remote_target::process_stop_reply(stop_reply*, target_waitstatus*)
        /home/vries/gdb_versions/devel/src/gdb/remote.c:8076
0x979b28 remote_target::wait_as(ptid_t, target_waitstatus*, enum_flags<target_wait_flag>)
        /home/vries/gdb_versions/devel/src/gdb/remote.c:8261
0x979ef3 remote_target::wait(ptid_t, target_waitstatus*, enum_flags<target_wait_flag>)
        /home/vries/gdb_versions/devel/src/gdb/remote.c:8344
0x94aea9 record_btrace_target::wait(ptid_t, target_waitstatus*, enum_flags<target_wait_flag>)
        /home/vries/gdb_versions/devel/src/gdb/record-btrace.c:2547
0xaa1cd1 target_wait(ptid_t, target_waitstatus*, enum_flags<target_wait_flag>)
        /home/vries/gdb_versions/devel/src/gdb/target.c:2608
0x7bc45d do_target_wait_1
        /home/vries/gdb_versions/devel/src/gdb/infrun.c:3622
0x7bc5e9 operator()
        /home/vries/gdb_versions/devel/src/gdb/infrun.c:3683
0x7bc909 do_target_wait
        /home/vries/gdb_versions/devel/src/gdb/infrun.c:3702
0x7bd5c0 fetch_inferior_event()
        /home/vries/gdb_versions/devel/src/gdb/infrun.c:4051
0x7a0641 inferior_event_handler(inferior_event_type)
        /home/vries/gdb_versions/devel/src/gdb/inf-loop.c:41
0x988465 remote_async_serial_handler
        /home/vries/gdb_versions/devel/src/gdb/remote.c:14440
0xa16532 run_async_handler_and_reschedule
        /home/vries/gdb_versions/devel/src/gdb/ser-base.c:138
0xa16617 fd_event
        /home/vries/gdb_versions/devel/src/gdb/ser-base.c:189
0xe32352 handle_file_event
        /home/vries/gdb_versions/devel/src/gdbsupport/event-loop.cc:575
0xe328da gdb_wait_for_event
        /home/vries/gdb_versions/devel/src/gdbsupport/event-loop.cc:701
0xe317d8 gdb_do_one_event()
        /home/vries/gdb_versions/devel/src/gdbsupport/event-loop.cc:237
0x82d005 start_event_loop
        /home/vries/gdb_versions/devel/src/gdb/main.c:421
0x82d125 captured_command_loop
        /home/vries/gdb_versions/devel/src/gdb/main.c:481
0x82e973 captured_main
        /home/vries/gdb_versions/devel/src/gdb/main.c:1348
0x82e9d9 gdb_main(captured_main_args*)
        /home/vries/gdb_versions/devel/src/gdb/main.c:1363
0x417a5d main
        /home/vries/gdb_versions/devel/src/gdb/gdb.c:32
...
Comment 1 Markus Metzger 2021-12-08 07:46:13 UTC
This is addressed by https://sourceware.org/pipermail/gdb-patches/2021-December/184053.html.
Comment 2 Markus Metzger 2022-01-27 12:55:20 UTC
This is fixed by b674665b51112de22260709a214d4d6ba01c7e57.  I don't see how I could change the status.
Comment 3 Tom de Vries 2022-01-27 13:04:17 UTC
(In reply to Markus Metzger from comment #2)
> This is fixed by b674665b51112de22260709a214d4d6ba01c7e57.