Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Aleksandar Ristovski <aristovski@qnx.com>
To: Vladimir Prus <ghost@cs.msu.su>
Cc: gdb-patches@sources.redhat.com, nickrob@snap.net.nz
Subject: Re: [patch] fix for PR2424
Date: Sun, 09 Mar 2008 00:12:00 -0000	[thread overview]
Message-ID: <47D32B57.5020203@qnx.com> (raw)
In-Reply-To: <fqum9o$tmh$1@ger.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 1395 bytes --]

Vladimir Prus wrote:
> FWIW, you don't say what function in mi-support.exp is changed,
> and it would be better if your patch was generated with -u (unified diff,
> 3 lines of context) -- the current one has no context at all, so I
> can only guess which function that is.

Please find attached new diffs.


> 
> Speaking of the problem itself -- in PR2424 you say:
> 
>         When inferior stops at temporary breakpoint, message is:
>         *stopped,thread-id="0",.......
>         without mentioning "reason=breakpoint-hit"
>         This causes issues for multithreaded programs.
> 
> What issues does it cause for MT programs?

When inferior hits a temporary breakpoint, due to breakpoint removal the reason 
for stop is "lost in translation". This leaves user guessing what the reason for 
stop was. This  is applicable to both single and multi threaded inferiors, but 
gets more annoying when multiple threads exist since then client program (in my 
case IDE - CDT) can not figure out which thread caused the stop in addition to 
not knowing the reason (I am not working on CDT but I was explained that missing 
"reason" is to blame, and after the patch I proposed I was told things now work 
as expected).


@Nick: I think the breakpoint should be reported. The fact that it is temporary 
doesn't make it much different than a regular breakpoint... but maybe I'm 
missing something.


[-- Attachment #2: PR2424test.diff --]
[-- Type: text/plain, Size: 896 bytes --]

Index: gdb/testsuite/lib/mi-support.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/mi-support.exp,v
retrieving revision 1.51
diff -u -p -r1.51 mi-support.exp
--- gdb/testsuite/lib/mi-support.exp	29 Jan 2008 19:36:58 -0000	1.51
+++ gdb/testsuite/lib/mi-support.exp	9 Mar 2008 00:03:39 -0000
@@ -890,7 +890,7 @@ proc mi_runto_helper {func run_or_contin
   }
 
   gdb_expect {
-    -re ".*000\\*stopped,thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=\(\\\[.*\\\]\|\{.*\}\),file=\".*\",fullname=\"${fullname_syntax}.*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" {
+    -re ".*000\\*stopped,reason=.*thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"$func\",args=\(\\\[.*\\\]\|\{.*\}\),file=\".*\",fullname=\"${fullname_syntax}.*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" {
       pass "$test"
       return 0
     }

[-- Attachment #3: PR2424infrun.c.diff --]
[-- Type: text/plain, Size: 1007 bytes --]

Index: gdb/infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.266
diff -u -p -r1.266 infrun.c
--- gdb/infrun.c	29 Jan 2008 22:47:19 -0000	1.266
+++ gdb/infrun.c	9 Mar 2008 00:04:36 -0000
@@ -3151,11 +3151,6 @@ Further execution is probably impossible
 	}
     }
 
-  /* Delete the breakpoint we stopped at, if it wants to be deleted.
-     Delete any breakpoint that is to be deleted at the next stop.  */
-
-  breakpoint_auto_delete (stop_bpstat);
-
   /* If an auto-display called a function and that got a signal,
      delete that auto-display to avoid an infinite recursion.  */
 
@@ -3292,6 +3287,9 @@ Further execution is probably impossible
     }
 
 done:
+  /* Delete the breakpoint we stopped at, if it wants to be deleted.
+     Delete any breakpoint that is to be deleted at the next stop.  */
+  breakpoint_auto_delete (stop_bpstat);
   annotate_stopped ();
   observer_notify_normal_stop (stop_bpstat);
 }

  reply	other threads:[~2008-03-09  0:12 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-05 17:36 Aleksandar Ristovski
2008-03-08 11:31 ` Nick Roberts
2008-03-08 18:36 ` Vladimir Prus
2008-03-09  0:12   ` Aleksandar Ristovski [this message]
2008-03-09  3:32     ` Nick Roberts
2008-03-09  4:55       ` Aleksandar Ristovski
2008-03-10  8:11     ` Vladimir Prus
2008-03-10 14:29       ` Aleksandar Ristovski
2008-03-10 14:45         ` Vladimir Prus
2008-03-10 17:18           ` Aleksandar Ristovski
2008-03-10 17:36             ` Vladimir Prus
2008-03-10 18:50               ` Aleksandar Ristovski
2008-04-01 19:41 Aleksandar Ristovski
2008-04-14 15:16 Aleksandar Ristovski
2008-04-14 18:06 ` Daniel Jacobowitz
2008-04-15 15:07 Aleksandar Ristovski
2008-04-15 15:25 ` Daniel Jacobowitz
2008-04-16 13:17 ` Vladimir Prus
2008-04-23 11:16 ` Vladimir Prus
2008-04-15 15:31 Aleksandar Ristovski
2008-04-16 18:28 Aleksandar Ristovski
2008-04-23 17:48 Aleksandar Ristovski
2008-04-23 17:49 ` Vladimir Prus

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=47D32B57.5020203@qnx.com \
    --to=aristovski@qnx.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=ghost@cs.msu.su \
    --cc=nickrob@snap.net.nz \
    /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