From: Joel Brobecker <brobecker@adacore.com>
To: Brad Mouring <bmouring@ni.com>
Cc: gdb-patches@sourceware.org, Brad Mouring <brad.mouring@ni.com>
Subject: Re: [PATCH] gdb/source.c: Fix matching path substitute rule listing
Date: Tue, 03 Jun 2014 14:25:00 -0000 [thread overview]
Message-ID: <20140603142516.GO4289@adacore.com> (raw)
In-Reply-To: <1401742510-26527-1-git-send-email-brad.mouring@ni.com>
[-- Attachment #1: Type: text/plain, Size: 1414 bytes --]
> This was tested on x86_64 Linux 3.0.0-21
>
> gdb/ChangeLog:
>
> * source.c (show_substitute_path_command): Fix display of matching
> substitution rules
>
> gdb/testsuite/ChangeLog:
>
> * subst.exp: Add tests to verify partial path matching output
Thank you. This is mostly OK. I made the following little fixes:
- In the ChangeLog, the sentences should all end with a period.
- In the second ChangeLog, the patch to the file being changed
should be relative to the directory where the ChangeLog is
(missing "gdb.ada/" in this case).
- For the platform on which this was tested, I couldn't tell what
the 3.0.0-21 was about (kernel version?), but that part is usually
not significant and often omitted, so I just removed it.
I've also moved that information after the ChangeLog entries
as we traditionally place it there, but that's just because
I was already making minor edits. There are otherwise no requirement
for the placement of that information.
I've pushed the attached commit under the "tiny patch" rule. There
are only so much code we'll be able to accept from you under that
rule, so if you think you might have other contributions coming,
you'll need to have a copyright assignment on file with the FSF
(it's a bit of a lengthy process, even if they seem to have improved
in the past).
Thanks again for the patch (and your patience!).
--
Joel
[-- Attachment #2: 0001-gdb-source.c-Fix-matching-path-substitute-rule-listi.patch --]
[-- Type: text/x-diff, Size: 4499 bytes --]
From 1e2ccb612d2b61014bb7e9fef3eb58e4947b9d2b Mon Sep 17 00:00:00 2001
From: Brad Mouring <bmouring@ni.com>
Date: Mon, 2 Jun 2014 15:55:10 -0500
Subject: [PATCH] gdb/source.c: Fix matching path substitute rule listing
The check for the source (or "from") directory snippet in listing
matching path substitution rules currently will not match anything
other than a direct match of the "from" field in a substitution rule,
resulting in the incorrect behavior below:
...
(gdb) set substitute-path /a/path /another/path
(gdb) show substitute-path
List of all source path substitution rules:
`/a/path' -> `/another/path'.
(gdb) show substitute-path /a/path/to/a/file.ext
Source path substitution rule matching `/a/path/to/a/file.ext':
(gdb) show substitute-path /a/path
Source path substitution rule matching `/a/path':
`/a/path' -> `/another/path'.
...
This change effects the following behavior by (sanely) checking
with the length of the "from" portion of a rule and ensuring that
the next character of the path considered for substitution is a path
delimiter (or NULL). With this change, the following behavior is
garnered:
...
(gdb) set substitute-path /a/path /another/path
(gdb) show substitute-path
List of all source path substitution rules:
`/a/path' -> `/another/path'.
(gdb) show substitute-path /a/path/to/a/file.ext
Source path substitution rule matching `/a/path/to/a/file.ext':
`/a/path' -> `/another/path'.
(gdb) show substitute-path /a/pathological/case/that/should/fail.err
Source path substitution rule matching `/a/pathological/case/that/should/fail.err':
(gdb)
Also included is a couple of tests added to subst.exp to verify
this behavior in the test suite.
gdb/ChangeLog:
* source.c (show_substitute_path_command): Fix display of matching
substitution rules.
gdb/testsuite/ChangeLog:
* gdb.ada/subst.exp: Add tests to verify partial path matching
output.
This was tested on x86_64 Linux.
---
gdb/ChangeLog | 6 ++++++
gdb/source.c | 2 +-
gdb/testsuite/ChangeLog | 5 +++++
gdb/testsuite/gdb.base/subst.exp | 8 ++++++++
4 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bda46b5..698c15c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2014-06-03 Brad Mouring <bmouring@ni.com> (tiny patch)
+
+ Pushed by Joel Brobecker <brobecker@adacore.com>
+ * source.c (show_substitute_path_command): Fix display of matching
+ substitution rules.
+
2014-06-03 Gary Benson <gbenson@redhat.com>
* gnu-v2-abi.c (gnuv2_value_rtti_type): Use gdb_demangle.
diff --git a/gdb/source.c b/gdb/source.c
index c985a1b..14b1f71 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -1890,7 +1890,7 @@ show_substitute_path_command (char *args, int from_tty)
while (rule != NULL)
{
- if (from == NULL || FILENAME_CMP (rule->from, from) == 0)
+ if (from == NULL || substitute_path_rule_matches (rule, from) != 0)
printf_filtered (" `%s' -> `%s'.\n", rule->from, rule->to);
rule = rule->next;
}
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 8217403..40518b6 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-06-03 Brad Mouring <bmouring@ni.com> (tiny patch)
+
+ * gdb.base/subst.exp: Add tests to verify partial path matching
+ output.
+
2014-06-03 Pedro Alves <palves@redhat.com>
* gdb.base/sss-bp-on-user-bp-2.exp: Skip if testing with a remote
diff --git a/gdb/testsuite/gdb.base/subst.exp b/gdb/testsuite/gdb.base/subst.exp
index e132809..e99735b 100644
--- a/gdb/testsuite/gdb.base/subst.exp
+++ b/gdb/testsuite/gdb.base/subst.exp
@@ -95,6 +95,14 @@ gdb_test "show substitute-path depuis" \
"Source path substitution rule matching `depuis':\r\n +`depuis' -> `vers'." \
"show substitute-path depuis, after all paths added"
+gdb_test "show substitute-path from/path" \
+ "Source path substitution rule matching `from/path':\r\n +`from' -> `to'." \
+ "show substitute-path from/path, after all paths added"
+
+gdb_test "show substitute-path from_a_bad_path" \
+ "Source path substitution rule matching `from_a_bad_path':" \
+ "show substitute-path from_a_bad_path, after all paths added"
+
gdb_test "show substitute-path garbage" \
"Source path substitution rule matching `garbage':" \
"show substitute-path garbage, after all paths added"
--
1.9.1
next prev parent reply other threads:[~2014-06-03 14:25 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-23 21:02 [PATCH] gdb/source.c: Fix source path substitution Brad Mouring
2014-05-23 23:50 ` Joel Brobecker
2014-05-24 0:00 ` Joel Brobecker
2014-05-27 13:17 ` Brad Mouring
2014-05-27 18:10 ` Joel Brobecker
2014-05-28 16:01 ` Brad Mouring
2014-05-28 16:15 ` Joel Brobecker
2014-05-28 22:42 ` Fix matching path substitution rule listing, add tests Brad Mouring
2014-05-28 22:42 ` [PATCH 2/2] gdb/source.c: Fix matching path substitute rule listing Brad Mouring
2014-06-02 15:14 ` Joel Brobecker
2014-06-02 18:28 ` [PATCH] " Brad Mouring
2014-06-02 20:27 ` Brad Mouring
2014-06-02 20:45 ` Joel Brobecker
2014-06-02 20:55 ` Brad Mouring
2014-06-03 14:25 ` Joel Brobecker [this message]
2014-05-28 22:42 ` [PATCH 1/2] testsuite/subst: Add tests for printing matches Brad Mouring
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=20140603142516.GO4289@adacore.com \
--to=brobecker@adacore.com \
--cc=bmouring@ni.com \
--cc=brad.mouring@ni.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