[binutils-gdb] Add styling to macro commands
Tom Tromey
tromey@sourceware.org
Sun Feb 17 23:35:00 GMT 2019
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6506371f0671dd5ca11127fee4db8d8d7fec157f
commit 6506371f0671dd5ca11127fee4db8d8d7fec157f
Author: Tom Tromey <tom@tromey.com>
Date: Fri Feb 8 01:28:53 2019 -0700
Add styling to macro commands
This adds filename styling to "info macro".
gdb/ChangeLog
2019-02-17 Tom Tromey <tom@tromey.com>
* macrocmd.c (show_pp_source_pos): Style the file names.
gdb/testsuite/ChangeLog
2019-02-17 Tom Tromey <tom@tromey.com>
* gdb.base/style.exp: Use -g3 to compile when possible. Add test
for macro styling.
* gdb.base/style.c (SOME_MACRO): New macro.
Diff:
---
gdb/ChangeLog | 4 ++++
gdb/macrocmd.c | 9 ++++++---
gdb/testsuite/ChangeLog | 6 ++++++
gdb/testsuite/gdb.base/style.c | 2 ++
gdb/testsuite/gdb.base/style.exp | 16 +++++++++++++++-
5 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b9af73f..882546a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2019-02-17 Tom Tromey <tom@tromey.com>
+ * macrocmd.c (show_pp_source_pos): Style the file names.
+
+2019-02-17 Tom Tromey <tom@tromey.com>
+
PR tui/24197:
* tui/tui-source.c (tui_set_source_content_nil): Rewrite.
diff --git a/gdb/macrocmd.c b/gdb/macrocmd.c
index beb9b78..3313e65 100644
--- a/gdb/macrocmd.c
+++ b/gdb/macrocmd.c
@@ -22,6 +22,7 @@
#include "macrotab.h"
#include "macroexp.h"
#include "macroscope.h"
+#include "cli/cli-style.h"
#include "cli/cli-utils.h"
#include "command.h"
#include "gdbcmd.h"
@@ -121,14 +122,16 @@ show_pp_source_pos (struct ui_file *stream,
char *fullname;
fullname = macro_source_fullname (file);
- fprintf_filtered (stream, "%s:%d\n", fullname, line);
+ fputs_styled (fullname, file_name_style.style (), stream);
+ fprintf_filtered (stream, ":%d\n", line);
xfree (fullname);
while (file->included_by)
{
fullname = macro_source_fullname (file->included_by);
- fprintf_filtered (gdb_stdout, " included at %s:%d\n", fullname,
- file->included_at_line);
+ fputs_filtered (_(" included at "), stream);
+ fputs_styled (fullname, file_name_style.style (), stream);
+ fprintf_filtered (stream, ":%d\n", file->included_at_line);
xfree (fullname);
file = file->included_by;
}
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 88c6a6c..f50f1e3 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2019-02-17 Tom Tromey <tom@tromey.com>
+ * gdb.base/style.exp: Use -g3 to compile when possible. Add test
+ for macro styling.
+ * gdb.base/style.c (SOME_MACRO): New macro.
+
+2019-02-17 Tom Tromey <tom@tromey.com>
+
* gdb.base/style.exp: Add line-wrapping tests.
* gdb.base/page.exp: Add test for quitting during pagination.
diff --git a/gdb/testsuite/gdb.base/style.c b/gdb/testsuite/gdb.base/style.c
index 53f6596..a44936e 100644
--- a/gdb/testsuite/gdb.base/style.c
+++ b/gdb/testsuite/gdb.base/style.c
@@ -13,6 +13,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#define SOME_MACRO 23
+
int
main (int argc, char **argv)
{
diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp
index 010d959..2778001 100644
--- a/gdb/testsuite/gdb.base/style.exp
+++ b/gdb/testsuite/gdb.base/style.exp
@@ -21,7 +21,16 @@ save_vars { env(TERM) } {
# We need an ANSI-capable terminal to get the output.
setenv TERM ansi
- if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
+ set test_macros 0
+ set options debug
+ get_compiler_info
+ if { [test_compiler_info "gcc-*"] || [test_compiler_info "clang-*"] } {
+ lappend options additional_flags=-g3
+ set test_macros 1
+ }
+
+ if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
+ $options]} {
return -1
}
@@ -63,6 +72,11 @@ save_vars { env(TERM) } {
"frame when width=$width"
}
+ if {$test_macros} {
+ gdb_test "info macro SOME_MACRO" \
+ "Defined at $base_file_expr:16\r\n#define SOME_MACRO 23"
+ }
+
gdb_exit
gdb_spawn
More information about the Gdb-cvs
mailing list