From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 56228 invoked by alias); 7 Feb 2020 02:49:45 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 56038 invoked by uid 89); 7 Feb 2020 02:49:19 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-5.3 required=5.0 tests=AWL,BAYES_00,KAM_SHORT,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=H*f:sk:Ttoc4Wa, H*f:CAHXVFW, H*i:sk:Ttoc4Wa, H*r:sk:server- X-HELO: simark.ca Received: from simark.ca (HELO simark.ca) (158.69.221.121) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 07 Feb 2020 02:49:15 +0000 Received: from [10.0.0.11] (unknown [192.222.164.54]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id EAA2C1E56E; Thu, 6 Feb 2020 21:49:08 -0500 (EST) Subject: Re: internal-error: inferior* find_inferior_pid(process_stratum_target*, int): Assertion `pid != 0' failed To: Maxim Blinov , gdb@sourceware.org References: From: Simon Marchi Message-ID: <35cce581-a0be-1976-687c-a12404dd0a10@simark.ca> Date: Fri, 07 Feb 2020 02:49:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2020-02/txt/msg00024.txt.bz2 On 2020-02-06 1:09 p.m., Maxim Blinov wrote: > Hi all, I have a problem running GDB in simulator mode (CGEN) for m32r and avr. > > The problem in both cases seems to be to do with the following: CGEN will > set the inferior_ptid.m_pid to 42000 (hardcoded arbitrary value). However, > at some point, when I hit 'r' to run all, the "switch_to_no_thread()" function > will set "inferior_ptid = null_ptid", and at some point later GDB will crash > (see below). > > Version numbers are at the bottom of email. > > I can pinpoint the place at which inferior_ptid.m_pid changes from 42000 to 0, > by running avr-gdb under my workstation-gdb, like so (the "avr-gdb" and > "workstation-gdb" are my own prefixes, just to differentiate.): > > shell-window-1$ avr-gdb hello > (avr-gdb) > shell-window-2$ gdb -p > (workstation-gdb) > (workstation-gdb) watch inferior_ptid.m_pid > (workstation-gdb) condition 1 inferior_ptid.m_pid != 42000 > (workstation-gdb) c > (avr-gdb) target sim > (avr-gdb) load > (avr-gdb) info files > Symbols from "/home/maxim/dev/ovl/avr/test-arena/hello". > Local exec file: > `/home/maxim/dev/ovl/avr/test-arena/hello', file type elf32-avr. > Entry point: 0x0 > 0x00800100 - 0x0080010e is .data > 0x00000000 - 0x000001b4 is .text > 0x0080010e - 0x00800114 is .bss > (avr-gdb) b *0x0 > (avr-gdb) r > (workstation-gdb) > Thread 1 "avr-gdb" hit Hardware watchpoint 2: inferior_ptid.m_pid > > Old value = 42000 > New value = 0 > 0x000055f3c41229e5 in switch_to_no_thread () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/thread.c:1331 > 1331 inferior_ptid = null_ptid; > (workstation-gdb) bt > #0 0x000055f3c41229e5 in switch_to_no_thread () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/thread.c:1331 > #1 0x000055f3c3efae59 in switch_to_inferior_no_thread (inf=0x55f3c4d48240) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/inferior.c:623 > #2 0x000055f3c3f038c4 in commit_resume_all_targets () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/infrun.c:2880 > #3 0x000055f3c3f0462e in proceed (addr=0, siggnal=GDB_SIGNAL_0) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/infrun.c:3183 > #4 0x000055f3c3ef1c78 in run_command_1 (args=0x0, from_tty=1, > run_how=RUN_NORMAL) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/infcmd.c:678 > #5 0x000055f3c3ef1d45 in run_command (args=0x0, from_tty=1) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/infcmd.c:688 > #6 0x000055f3c3d59a24 in do_const_cfunc (c=0x55f3c4e24450, args=0x0, > from_tty=1) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/cli/cli-decode.c:107 > #7 0x000055f3c3d5cf43 in cmd_func (cmd=0x55f3c4e24450, args=0x0, from_tty=1) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/cli/cli-decode.c:1952 > #8 0x000055f3c412a254 in execute_command (p=0x55f3c4d0da21 "", from_tty=1) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/top.c:653 > #9 0x000055f3c3e94151 in command_handler (command=0x55f3c4d0da20 "") > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-top.c:587 > #10 0x000055f3c3e945cb in command_line_handler (rl=...) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-top.c:772 > #11 0x000055f3c3e938c5 in gdb_rl_callback_handler (rl=0x55f3c4edca80 "r") > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-top.c:218 > #12 0x000055f3c41f9d39 in rl_callback_read_char () > at /home/maxim/dev/ovl/avr/binutils-gdb/./readline/readline/callback.c:281 > #13 0x000055f3c3e936ed in gdb_rl_callback_read_char_wrapper_noexcept () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-top.c:176 > #14 0x000055f3c3e93797 in gdb_rl_callback_read_char_wrapper ( > client_data=0x55f3c4d0d770) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-top.c:193 > #15 0x000055f3c3e93fe3 in stdin_event_handler (error=0, > client_data=0x55f3c4d0d770) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-top.c:515 > #16 0x000055f3c3e91bfe in handle_file_event (file_ptr=0x55f3c4ec93c0, > ready_mask=1) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-loop.c:731 > #17 0x000055f3c3e921c7 in gdb_wait_for_event (block=1) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-loop.c:857 > #18 0x000055f3c3e90fcd in gdb_do_one_event () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-loop.c:346 > #19 0x000055f3c3e90ff7 in start_event_loop () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-loop.c:370 > #20 0x000055f3c3f507b0 in captured_command_loop () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/main.c:360 > #21 0x000055f3c3f520ad in captured_main (data=0x7fff597e8340) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/main.c:1203 > #22 0x000055f3c3f52113 in gdb_main (args=0x7fff597e8340) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/main.c:1218 > #23 0x000055f3c3c71cc3 in main (argc=2, argv=0x7fff597e8448) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/gdb.c:32 > (workstation-gdb) c > > ... > At this point, I hit the hardware watchpoint 2 more times. I'm not sure if thats > significant, but its just the same "changed from 42000 to 0". > ... > > (avr-gdb) > Starting program: /home/maxim/dev/ovl/avr/test-arena/hello > /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/inferior.c:279: > 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. > Quit this debugging session? (y or n) > > > And thats that. I originally did this for m32r, but when that failed, I went > to avr but has exactly the same problem. > > > Here is the coredump backtrace for avr-gdb: > > ``` > #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 > #1 0x00007f404663d801 in __GI_abort () at abort.c:79 > #2 0x000055cb48885d69 in dump_core () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/utils.c:203 > #3 0x000055cb4888630e in internal_vproblem(internal_problem *, const > char *, int, const char *, typedef __va_list_tag __va_list_tag *) ( > problem=0x55cb48f27660 , > file=0x55cb48a85738 "/home/maxim/dev/ovl/avr/binutils-gdb/./gdb/inferior.c", > line=279, fmt=0x55cb48a856ab "%s: Assertion `%s' failed.", > ap=0x7fff97d46a70) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/utils.c:413 > #4 0x000055cb488863f3 in internal_verror ( > file=0x55cb48a85738 "/home/maxim/dev/ovl/avr/binutils-gdb/./gdb/inferior.c", > line=279, fmt=0x55cb48a856ab "%s: Assertion `%s' failed.", > ap=0x7fff97d46a70) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/utils.c:438 > #5 0x000055cb489cf758 in internal_error ( > file=0x55cb48a85738 "/home/maxim/dev/ovl/avr/binutils-gdb/./gdb/inferior.c", > line=279, fmt=0x55cb48a856ab "%s: Assertion `%s' failed.") > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdbsupport/errors.c:55 > #6 0x000055cb4860b7c3 in find_inferior_pid (targ=0x55cb48f26de0 > , pid=0) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/inferior.c:279 > #7 0x000055cb4860b88a in find_inferior_ptid (targ=0x55cb48f26de0 , > ptid=...) at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/inferior.c:293 > #8 0x000055cb48831d29 in find_thread_ptid (targ=0x55cb48f26de0 > , ptid=...) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/thread.c:527 > #9 0x000055cb4861b629 in handle_inferior_event (ecs=0x7fff97d46ec0) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/infrun.c:5062 > #10 0x000055cb48618ab9 in fetch_inferior_event (client_data=0x0) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/infrun.c:4002 > #11 0x000055cb485fcb43 in inferior_event_handler (event_type=INF_REG_EVENT, > client_data=0x0) at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/inf-loop.c:43 > #12 0x000055cb48624b9c in infrun_async_inferior_event_handler (data=0x0) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/infrun.c:9317 > #13 0x000055cb485a468e in check_async_event_handlers () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-loop.c:1062 > #14 0x000055cb485a2f5f in gdb_do_one_event () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-loop.c:325 > #15 0x000055cb485a2ff7 in start_event_loop () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/event-loop.c:370 > #16 0x000055cb486627b0 in captured_command_loop () > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/main.c:360 > #17 0x000055cb486640ad in captured_main (data=0x7fff97d470e0) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/main.c:1203 > #18 0x000055cb48664113 in gdb_main (args=0x7fff97d470e0) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/main.c:1218 > #19 0x000055cb48383cc3 in main (argc=2, argv=0x7fff97d471e8) > at /home/maxim/dev/ovl/avr/binutils-gdb/./gdb/gdb.c:32 > ``` > > And here is the coredump backtrace for m32r-unknown-elf-gdb: > > ``` > #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 > #1 0x00007f5562123801 in __GI_abort () at abort.c:79 > #2 0x00005599a200c3a7 in dump_core () > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/utils.c:203 > #3 0x00005599a200c94c in internal_vproblem(internal_problem *, const > char *, int, const char *, typedef __va_list_tag __va_list_tag *) ( > problem=0x5599a2744740 , > file=0x5599a2280758 > "/home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/inferior.c", > line=279, fmt=0x5599a22806cb "%s: Assertion `%s' failed.", > ap=0x7ffc2d752ff0) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/utils.c:413 > #4 0x00005599a200ca31 in internal_verror ( > file=0x5599a2280758 > "/home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/inferior.c", > line=279, fmt=0x5599a22806cb "%s: Assertion `%s' failed.", > ap=0x7ffc2d752ff0) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/utils.c:438 > #5 0x00005599a21bf5a0 in internal_error ( > file=0x5599a2280758 > "/home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/inferior.c", > line=279, fmt=0x5599a22806cb "%s: Assertion `%s' failed.") > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdbsupport/errors.c:55 > #6 0x00005599a1d906a7 in find_inferior_pid (targ=0x5599a2743ec0 > , pid=0) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/inferior.c:279 > #7 0x00005599a1d9076e in find_inferior_ptid (targ=0x5599a2743ec0 , > ptid=...) at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/inferior.c:293 > #8 0x00005599a1fb8367 in find_thread_ptid (targ=0x5599a2743ec0 > , ptid=...) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/thread.c:527 > #9 0x00005599a1da050d in handle_inferior_event (ecs=0x7ffc2d753440) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/infrun.c:5062 > #10 0x00005599a1d9d99d in fetch_inferior_event (client_data=0x0) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/infrun.c:4002 > #11 0x00005599a1d81a27 in inferior_event_handler (event_type=INF_REG_EVENT, > client_data=0x0) at > /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/inf-loop.c:43 > #12 0x00005599a1da9a80 in infrun_async_inferior_event_handler (data=0x0) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/infrun.c:9317 > #13 0x00005599a1d29572 in check_async_event_handlers () > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/event-loop.c:1062 > #14 0x00005599a1d27e43 in gdb_do_one_event () > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/event-loop.c:325 > #15 0x00005599a1d27edb in start_event_loop () > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/event-loop.c:370 > #16 0x00005599a1de8dee in captured_command_loop () > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/main.c:360 > #17 0x00005599a1dea6eb in captured_main (data=0x7ffc2d753660) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/main.c:1203 > #18 0x00005599a1dea751 in gdb_main (args=0x7ffc2d753660) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/main.c:1218 > #19 0x00005599a1b0b413 in main (argc=2, argv=0x7ffc2d753768) > at /home/maxim/dev/ovl/m32r/binutils-gdb/./gdb/gdb.c:32 > ``` > > I saw this discussion that seemed to have a very similar problem, here: > https://sourceware.org/ml/gdb-patches/2019-10/msg00512.html > > The patch doesn't apply anymore, but even when I did try adding an equivalent > statement, it still didn't work (I only tried with AVR though). > > Version numbers: > > maxim@fujitsu:~/dev/ovl/avr/test-arena$ avr-gdb --version > GNU gdb (GDB) 10.0.50.20200201-git > Copyright (C) 2020 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > maxim@fujitsu:~/dev/ovl/avr/test-arena$ avr-as --version > GNU assembler (GNU Binutils) 2.34 > Copyright (C) 2020 Free Software Foundation, Inc. > This program is free software; you may redistribute it under the terms of > the GNU General Public Licence version 3 or later. > This program has absolutely no warranty. > This assembler was configured for a target of `avr'. > > Maxim > Hi Maxim, I didn't read your backtraces in details, but this looks very much like what was fixed by this patch (present in master): https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=cf1d9e092f871df3b34a58cfcde915c689ac9067 Can you check if you have it? Simon