Message ID | 1431020207-14371-2-git-send-email-lgustavo@codesourcery.com |
---|---|
State | New |
Headers | show |
> gdb/ChangeLog: > > 2015-05-07 Luis Machado <lgustavo@codesourcery.com> > > * gdb/mi/mi-cmd-var.c (mi_parse_format): Handle new "zero-hexadecimal" > format. > * gdb/varobj.c (varobj_format_string): Add "zero-hexadecimal" entry. > (format_code): Add 'z' entry. > (varobj_set_display_format): Handle FORMAT_ZHEXADECIMAL. > * gdb/varobj.h (varobj_display_formats) <FORMAT_ZHEXADECIMAL>: New enum > field. I don't normally have authority to approve, but the patch looks sufficiently mechanical that I think I can provide approval if the area maintainer isn't available. In the meantime, I noticed a few nits (formatting, mostly). > error (_("Must specify the format as: \"natural\", " > - "\"binary\", \"decimal\", \"hexadecimal\", or \"octal\"")); > + "\"binary\", \"decimal\", \"hexadecimal\", \"octal\" or \"zero-hexadecimal\"")); The last line is too long. Can you split it? > @@ -50,7 +50,7 @@ show_varobjdebug (struct ui_file *file, int from_tty, > > /* String representations of gdb's format codes. */ > char *varobj_format_string[] = > - { "natural", "binary", "decimal", "hexadecimal", "octal" }; > + { "natural", "binary", "decimal", "hexadecimal", "octal", "zero-hexadecimal" }; Same here. > --- a/gdb/varobj.h > +++ b/gdb/varobj.h > @@ -28,7 +28,8 @@ enum varobj_display_formats > FORMAT_BINARY, /* Binary display */ > FORMAT_DECIMAL, /* Decimal display */ > FORMAT_HEXADECIMAL, /* Hex display */ > - FORMAT_OCTAL /* Octal display */ > + FORMAT_OCTAL, /* Octal display */ > + FORMAT_ZHEXADECIMAL /* Zero padded hexadecimal */ > }; I suggest adding a ',' at the end of FORMAT_ZHEXADECIMAL. That way, next time we add a new enum, we can just add it without touching the rest of the definition.
diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c index ee0bbc6..5554e3c 100644 --- a/gdb/mi/mi-cmd-var.c +++ b/gdb/mi/mi-cmd-var.c @@ -233,10 +233,12 @@ mi_parse_format (const char *arg) return FORMAT_HEXADECIMAL; else if (strncmp (arg, "octal", len) == 0) return FORMAT_OCTAL; + else if (strncmp (arg, "zero-hexadecimal", len) == 0) + return FORMAT_ZHEXADECIMAL; } error (_("Must specify the format as: \"natural\", " - "\"binary\", \"decimal\", \"hexadecimal\", or \"octal\"")); + "\"binary\", \"decimal\", \"hexadecimal\", \"octal\" or \"zero-hexadecimal\"")); } void diff --git a/gdb/varobj.c b/gdb/varobj.c index b220fd8..2f2939e 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -50,7 +50,7 @@ show_varobjdebug (struct ui_file *file, int from_tty, /* String representations of gdb's format codes. */ char *varobj_format_string[] = - { "natural", "binary", "decimal", "hexadecimal", "octal" }; + { "natural", "binary", "decimal", "hexadecimal", "octal", "zero-hexadecimal" }; /* True if we want to allow Python-based pretty-printing. */ static int pretty_printing = 0; @@ -214,7 +214,7 @@ static struct varobj *varobj_add_child (struct varobj *var, /* Private data */ /* Mappings of varobj_display_formats enums to gdb's format codes. */ -static int format_code[] = { 0, 't', 'd', 'x', 'o' }; +static int format_code[] = { 0, 't', 'd', 'x', 'o', 'z' }; /* Header of the list of root variable objects. */ static struct varobj_root *rootlist; @@ -583,6 +583,7 @@ varobj_set_display_format (struct varobj *var, case FORMAT_DECIMAL: case FORMAT_HEXADECIMAL: case FORMAT_OCTAL: + case FORMAT_ZHEXADECIMAL: var->format = format; break; diff --git a/gdb/varobj.h b/gdb/varobj.h index 8860526..179b2a5 100644 --- a/gdb/varobj.h +++ b/gdb/varobj.h @@ -28,7 +28,8 @@ enum varobj_display_formats FORMAT_BINARY, /* Binary display */ FORMAT_DECIMAL, /* Decimal display */ FORMAT_HEXADECIMAL, /* Hex display */ - FORMAT_OCTAL /* Octal display */ + FORMAT_OCTAL, /* Octal display */ + FORMAT_ZHEXADECIMAL /* Zero padded hexadecimal */ }; enum varobj_type