From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: gdb-patches@sourceware.org
Subject: [patch] Fix "ambiguous linespec" regression: break lineno
Date: Fri, 08 Jun 2012 19:40:00 -0000 [thread overview]
Message-ID: <20120608193958.GA10296@host2.jankratochvil.net> (raw)
Hi,
"list" should set context for the "break barelinenumber" command, this is
a usability regression reported by Jakub Jelinek.
I have just reverted a part of code removed by the patch:
d2fae92c9d78b49086182385a5bbd086b7a030b6 is the first bad commit
Author: Tom Tromey <tromey@redhat.com>
the "ambiguous linespec" series
It seems somehow clear to me, OK to check it in?
tested on {x86_64,x86_64-m32}-fedora18pre-linux-gnu.
Thanks,
Jan
gdb/
2012-06-08 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix regression by the "ambiguous linespec" series.
* breakpoint.c (parse_breakpoint_sals): New variable cursal. Use
get_last_displayed_symtab and get_last_displayed_line and depending
on CURSAL.
gdb/testsuite/
2012-06-08 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix regression by the "ambiguous linespec" series.
* gdb.base/break.exp (list marker1, break lineno, delete $bpnum): New
tests.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 12db39b..9c4348f 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -8802,19 +8802,26 @@ parse_breakpoint_sals (char **address,
}
else
{
+ struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+
/* Force almost all breakpoints to be in terms of the
current_source_symtab (which is decode_line_1's default).
This should produce the results we want almost all of the
- time while leaving default_breakpoint_* alone. */
- if (last_displayed_sal_is_valid ())
+ time while leaving default_breakpoint_* alone.
+
+ ObjC: However, don't match an Objective-C method name which
+ may have a '+' or '-' succeeded by a '['. */
+ if (last_displayed_sal_is_valid ()
+ && (!cursal.symtab
+ || ((strchr ("+-", (*address)[0]) != NULL)
+ && ((*address)[1] != '['))))
decode_line_full (address, DECODE_LINE_FUNFIRSTLINE,
get_last_displayed_symtab (),
get_last_displayed_line (),
canonical, NULL, NULL);
else
decode_line_full (address, DECODE_LINE_FUNFIRSTLINE,
- (struct symtab *) NULL, 0,
- canonical, NULL, NULL);
+ cursal.symtab, cursal.line, canonical, NULL, NULL);
}
}
diff --git a/gdb/testsuite/gdb.base/break.exp b/gdb/testsuite/gdb.base/break.exp
index a203364..4254eca 100644
--- a/gdb/testsuite/gdb.base/break.exp
+++ b/gdb/testsuite/gdb.base/break.exp
@@ -371,6 +371,13 @@ gdb_expect {
}
}
+# Test the 'list' commands sets current file for the 'break LINENO' command.
+set bp_marker1 [gdb_get_line_number "set breakpoint 16 here" ${srcfile1}]
+gdb_test "list marker1" ".*"
+gdb_test "break $bp_marker1" "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+: file .*${srcfile1}, line ${bp_marker1}\\." \
+ "break lineno"
+gdb_test_no_output {delete $bpnum}
+
#
# run until the breakpoint at a line number
#
next reply other threads:[~2012-06-08 19:40 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-08 19:40 Jan Kratochvil [this message]
2012-06-08 20:41 ` Tom Tromey
2012-06-08 22:19 ` Matt Rice
2012-06-11 15:21 ` Jan Kratochvil
2012-06-10 19:03 ` Jan Kratochvil
2012-06-11 15:15 ` Tom Tromey
2012-06-11 19:17 ` [commit] " Jan Kratochvil
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=20120608193958.GA10296@host2.jankratochvil.net \
--to=jan.kratochvil@redhat.com \
--cc=gdb-patches@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