NetBSD Problem Report #55940
From martin@duskware.de Wed Jan 20 13:49:15 2021
Return-Path: <martin@duskware.de>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id A08361A923B
for <gnats-bugs@gnats.NetBSD.org>; Wed, 20 Jan 2021 13:49:15 +0000 (UTC)
From: martin@NetBSD.org
Reply-To: martin@NetBSD.org
To: gnats-bugs@NetBSD.org
Subject: can't "quit" from gdb pager prompt
X-Send-Pr-Version: 3.95
>Number: 55940
>Category: toolchain
>Synopsis: can't "quit" from gdb pager prompt
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: toolchain-manager
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jan 20 13:50:00 +0000 2021
>Closed-Date: Wed Jun 09 04:11:08 +0000 2021
>Last-Modified: Wed Jun 09 04:11:08 +0000 2021
>Originator: Martin Husemann
>Release: NetBSD 9.99.78
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD space-truckin.duskware.de 9.99.78 NetBSD 9.99.78 (GENERIC) #118: Wed Jan 20 12:45:59 CET 2021 martin@seven-days-to-the-wolves.aprisoft.de:/work/src/sys/arch/evbarm/compile/GENERIC evbarm
Architecture: earmv7hfeb
Machine: evbarm
>Description:
When gdb pages output it offers:
--Type <RET> for more, q to quit, c to continue without paging--
where I (maybe eroneously) would read "q to quit" as "stop paging, go back
to cli". However, gdb dumps core instead:
Reading symbols from gdb...
Reading symbols from /usr/libdata/debug//usr/bin/gdb.debug...
[New process 2634]
[New process 2995]
[New process 2776]
Core was generated by `gdb'.
Program terminated with signal SIGABRT, Aborted.
#0 0x786d2030 in _lwp_kill () from /usr/lib/libc.so.12
--Type <RET> for more, q to quit, c to continue without paging--
[Current thread is 1 (process 2634)]
(gdb) bt
#0 0x786d2030 in _lwp_kill () from /usr/lib/libc.so.12
#1 0x786d0b9c in abort () at /work/src/lib/libc/stdlib/abort.c:74
#2 0x788cb59c in __gnu_cxx::__verbose_terminate_handler ()
at /work/src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/vterminate.cc:95
#3 0x788d6938 in __cxxabiv1::__terminate (handler=<optimized out>)
at /work/src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_terminate.cc:48
#4 0x788d69e4 in std::terminate ()
at /work/src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_terminate.cc:58
#5 0x788d68c0 in __cxxabiv1::__cxa_throw (obj=obj@entry=0x783bddd0,
tinfo=0x6847f1c <typeinfo for gdb_exception_quit>,
dest=0x6626af8 <gdb_exception_quit::~gdb_exception_quit()>)
at /work/src/external/gpl3/gcc/dist/libstdc++-v3/libsupc++/eh_throw.cc:95
#6 0x065cc3a4 in throw_it (ap=..., fmt=0x783bddb8 "GNUCC++",
error=GDB_NO_ERROR, reason=RETURN_QUIT)
at /work/src/external/gpl3/gdb/lib/libgdbsupport/../../dist/gdbsupport/common-exceptions.cc:198
#7 throw_vquit (fmt=fmt@entry=0x7ff61f9c "\006\205 0", ap=..., ap@entry=...)
at /work/src/external/gpl3/gdb/lib/libgdbsupport/../../dist/gdbsupport/common-exceptions.cc:214
#8 0x06564ef0 in throw_quit (fmt=0x667685c "Quit")
at /work/src/external/gpl3/gdb/lib/libgdbsupport/../../dist/gdbsupport/common-exceptions.cc:233
#9 0x062bff34 in prompt_for_continue ()
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/utils.c:1490
#10 0x062c0470 in fputs_maybe_filtered (
linebuffer=linebuffer@entry=0x78285488 "/work/src/external/bsd/libarchive/dist/libarchive/archive_write_disk_posix.c", stream=stream@entry=0x787883c0,
filter=2021163968, filter@entry=1)
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/utils.c:1792
#11 0x062c1a08 in fputs_styled (
linebuffer=linebuffer@entry=0x78285488 "/work/src/external/bsd/libarchive/dist/libarchive/archive_write_disk_posix.c", style=..., stream=0x787883c0)
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/utils.c:1861
#12 0x063697e4 in cli_ui_out::do_field_string (fldno=<optimized out>,
fldname=0x7ff621dc "\001x\203\300", style=...,
string=0x78285488 "/work/src/external/bsd/libarchive/dist/libarchive/archive_write_disk_posix.c", align=ui_noalign, width=<optimized out>, this=0x789c81b8)
at /work/hosts/evbearmv7hf-eb/usr/include/g++/bits/stl_iterator.h:806
#13 cli_ui_out::do_field_string (this=0x789c81b8, fldno=<optimized out>,
width=<optimized out>, align=ui_noalign, fldname=0x66bb280 "file",
string=0x78285488 "/work/src/external/bsd/libarchive/dist/libarchive/archive_write_disk_posix.c", style=...)
at /work/src/external/gpl3/gdb/lib/libgdb/../../dist/gdb/cli-out.c:136
#14 0x062c3458 in ui_out::field_string (this=this@entry=0x789c81b8,
[..]
>How-To-Repeat:
invoke some gdb command with lengthy output (like bt on a deep stack)
and type "q" at the pager prompt.
>Fix:
n/a
>Release-Note:
>Audit-Trail:
From: Rin Okuyama <rokuyama.rk@gmail.com>
To: gnats-bugs@netbsd.org, Martin Husemann <martin@NetBSD.org>
Cc:
Subject: Re: toolchain/55940: can't "quit" from gdb pager prompt
Date: Tue, 26 Jan 2021 18:01:55 +0900
C++ exception handling is broken for hardfloat ARM variants.
See toolchain/55837 for more details.
As a workaround, building whole GDB with -O0 fixes the problem for me...
State-Changed-From-To: open->feedback
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Wed, 09 Jun 2021 01:43:26 +0000
State-Changed-Why:
55837 is fixed, this should be too
State-Changed-From-To: feedback->closed
State-Changed-By: martin@NetBSD.org
State-Changed-When: Wed, 09 Jun 2021 04:11:08 +0000
State-Changed-Why:
confirmed fixed
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.