Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Aleksandar Ristovski <aristovski@qnx.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [patch] Assert when 'break' with no arguments
Date: Fri, 24 Feb 2012 16:09:00 -0000	[thread overview]
Message-ID: <4F47B53D.8050003@redhat.com> (raw)
In-Reply-To: <4F47B2A8.3070202@qnx.com>

On 02/24/2012 03:54 PM, Aleksandar Ristovski wrote:
> On 12-02-24 10:41 AM, Pedro Alves wrote:
>> On 02/14/2012 08:44 PM, Aleksandar Ristovski wrote:
>>> --- gdb/stack.c    7 Feb 2012 04:48:22 -0000    1.247
>>> +++ gdb/stack.c    14 Feb 2012 20:43:08 -0000
>>> @@ -909,6 +909,11 @@ set_last_displayed_sal (int valid, struc
>>>     last_displayed_addr = addr;
>>>     last_displayed_symtab = symtab;
>>>     last_displayed_line = line;
>>> +  if (valid&&  pspace == NULL)
>>> +    {
>>> +      warning (_("Trying to set NULL pspace."));
>>
>> Is there a case when this isn't a gdb bug?  IOW, any reason this isn't a gdb_assert?
>> This seems like a rather cryptic warning to show to a user.
> 
> I believe it would be a bug.
> 
> However, gdb_assert is rather destructive. The warning is to bring it to our attention, but continue so users can actually do debugging if this happens.
> 
> My thinking was: if sal is invalidated the rest of the code should continue functioning thus providing more value to the user (albeit maybe somewhat confused user) than killing the session.
> 
> Anyway that was my rationale.

Trouble is that cryptic warnings usually end up unnoticed
and unreported (users will just shrug at gdb's lameness).

If we clear the last displayed sal before issuing an internal
error, then we're more sure to catch the bug, and users can still say
no to "Quit this debugging session? (y or n)" and continue
debugging.  WDYT?

diff --git a/gdb/stack.c b/gdb/stack.c
index 070d658..22b16a5 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -911,8 +911,9 @@ set_last_displayed_sal (int valid, struct program_space *pspace,
   last_displayed_line = line;
   if (valid && pspace == NULL)
     {
-      warning (_("Trying to set NULL pspace."));
       clear_last_displayed_sal ();
+      internal_error (__FILE__, __LINE__,
+		      _("Trying to set NULL pspace."));
     }
 }


-- 
Pedro Alves


  reply	other threads:[~2012-02-24 16:05 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-14 18:03 Aleksandar Ristovski
2012-02-14 18:53 ` Aleksandar Ristovski
2012-02-14 18:06   ` Aleksandar Ristovski
2012-02-14 19:23 ` Joel Brobecker
2012-02-14 20:09   ` Aleksandar Ristovski
2012-02-14 20:18     ` Alfred M. Szmidt
2012-02-14 22:37       ` Aleksandar Ristovski
2012-02-15 17:15         ` Tom Tromey
2012-02-15 20:06           ` Aleksandar Ristovski
2012-02-19 16:42             ` [commit] testsuite: Fix break-inline.exp with gdbserver Jan Kratochvil
2012-02-24 15:52         ` [patch] Assert when 'break' with no arguments Pedro Alves
2012-02-24 16:00           ` Aleksandar Ristovski
2012-02-24 16:09             ` Pedro Alves [this message]
2012-02-24 16:18               ` Aleksandar Ristovski
2012-02-24 17:16                 ` Pedro Alves

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=4F47B53D.8050003@redhat.com \
    --to=palves@redhat.com \
    --cc=aristovski@qnx.com \
    --cc=gdb-patches@sources.redhat.com \
    /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