public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug breakpoints/26881] infrun.c:6384: internal-error: void process_event_stop_test(execution_control_state*): Assertion `ecs->event_thread->control.exception_resume_breakpoint != NULL' failed.
Date: Fri, 08 Jan 2021 10:11:20 +0000	[thread overview]
Message-ID: <bug-26881-4717-mTolHzkI8B@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-26881-4717@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=26881

--- Comment #13 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom de Vries <vries@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1940319c0ef6271cc42a5d4c359be90063948710

commit 1940319c0ef6271cc42a5d4c359be90063948710
Author: Tom de Vries <tdevries@suse.de>
Date:   Fri Jan 8 11:11:16 2021 +0100

    [gdb] Fix internal-error in process_event_stop_test

    The function create_exception_master_breakpoint in gdb/breakpoint.c
attempts
    to set a master exception breakpoint in each objfile.  It tries this using
    a libgcc/unwind probe, and if that fails then using the
    _Unwind_DebugHook symbol:
    ...
       for (objfile *objfile : current_program_space->objfiles ())
         {
            /* Try using probes.  */
            if (/* successful */)
              continue;

            /* Try using _Unwind_DebugHook */
         }
    ...

    The preference scheme works ok both if the objfile has debug info, and if
it's
    stripped.

    But it doesn't work when the objfile has a .gnu_debuglink to a .debug file
    (and the .debug file is present).  What happens is that:
    - we first encounter objfile libgcc.debug
    - we try using probes, and this fails
    - so we try _Unwind_DebugHook, which succeeds
    - next we encounter objfile libgcc
    - we try using probes, and this succeeds.
    So, we end up with a master exception breakpoint in both libgcc (using
probes)
    and libgcc.debug (using _Unwind_DebugHook).

    This eventually causes:
    ...
    (gdb) PASS: gdb.cp/nextoverthrow.exp: post-check - next over a throw 3
    next^M
    src/gdb/infrun.c:6384: internal-error: \
      void process_event_stop_test(execution_control_state*): \
      Assertion `ecs->event_thread->control.exception_resume_breakpoint !=
NULL' \
      failed.^M
    A problem internal to GDB has been detected,^M
    further debugging may prove unreliable.^M
    Quit this debugging session? (y or n) FAIL: gdb.cp/nextoverthrow.exp: next
    past catch (GDB internal error)
    ...

    To trigger this internal-error, we need to use gcc-10 or later to compile
the
    test-case, such that it contains the fix for gcc PR97774 - "Incorrect line
    info for try/catch".

    Fix this by only trying to install the master exception breakpoint in
    libgcc.debug using the _Unwind_DebugHook method, if the install using
probes
    in libgcc failed.

    Tested on x86_64-linux.

    gdb/ChangeLog:

    2021-01-08  Tom de Vries  <tdevries@suse.de>

            PR gdb/26881
            * breakpoint.c (create_exception_master_breakpoint_probe)
            (create_exception_master_breakpoint_hook): Factor out
            of ...
            (create_exception_master_breakpoint): ... here.  Only try to
install
            the master exception breakpoint in objfile.debug using the
            _Unwind_DebugHook method, if the install using probes in objfile
            failed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2021-01-08 10:11 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-14  9:58 [Bug gdb/26881] New: " vries at gcc dot gnu.org
2020-11-14 10:41 ` [Bug gdb/26881] " vries at gcc dot gnu.org
2020-11-14 10:45 ` vries at gcc dot gnu.org
2020-11-14 10:49 ` vries at gcc dot gnu.org
2020-11-14 13:07 ` vries at gcc dot gnu.org
2020-11-14 19:45 ` vries at gcc dot gnu.org
2020-11-15  0:24 ` vries at gcc dot gnu.org
2020-11-15  0:30 ` vries at gcc dot gnu.org
2020-11-16 14:35 ` vries at gcc dot gnu.org
2020-11-21  8:58 ` vries at gcc dot gnu.org
2021-01-05 10:41 ` vries at gcc dot gnu.org
2021-01-05 10:44 ` vries at gcc dot gnu.org
2021-01-05 13:30 ` [Bug breakpoints/26881] " vries at gcc dot gnu.org
2021-01-08 10:11 ` cvs-commit at gcc dot gnu.org [this message]
2021-01-08 10:58 ` cvs-commit at gcc dot gnu.org
2021-01-08 11:00 ` vries at gcc dot gnu.org
2021-06-27 17:49 ` ahmedsayeed1982 at yahoo dot com
2021-08-10 11:45 ` ucelsanicin at yahoo dot com
2021-08-27 17:51 ` ribevi6798 at enamelme dot com
2021-08-28 18:31 ` buranlevent at yahoo dot com
2021-09-06  9:10 ` focixujo at livinginsurance dot co.uk
2021-09-10 19:40 ` mehmetgelisin at aol dot com
2021-09-14 17:28 ` johnb6174 at gmail dot com
2021-09-14 18:48 ` mark at klomp dot org
2021-10-09 11:00 ` gulsenenginar at aol dot com
2021-10-17 19:48 ` vmireskazki at gmail dot com
2021-10-18 19:58 ` ahmedsayeed1982 at hotmail dot com
2021-10-19  7:15 ` progonsaytu at gmail dot com
2021-10-23 13:45 ` fiteva5725 at bomoads dot com
2021-10-24 10:02 ` glassmtech at ukr dot net
2021-10-29 10:57 ` kimolsun2020 at outlook dot com
2021-10-29 12:06 ` huracantili20 at gmail dot com
2021-11-02 15:21 ` gepaw63633 at dukeoo dot com
2021-11-06 21:11 ` paneki8601 at dukeoo dot com
2021-11-13 19:31 ` tesaso8237 at funboxcn dot com
2021-11-16 19:04 ` xecana8007 at funboxcn dot com
2021-11-22  7:37 ` gexed96894 at keagenan dot com

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-26881-4717-mTolHzkI8B@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).