gdb: Add support for dumping to verilog hex format.
Commit Message
This patch extends the 'dump' command to generate output in the
verilog hex format supported by bfd.
OK to apply?
Thanks,
Andrew
---
Extend the gdb 'dump' command to allow creating output in verilog hex
format.
gdb/ChangeLog:
* cli/cli-dump.c (verilog_cmdlist): New variable.
(dump_verilog_memory): New function.
(dump_verilog_value): New function.
(verilog_dump_command): New function.
(_initialize_cli_dump): Add new commands to support verilog dump
format.
* NEWS: Add entry for "dump verilog".
gdb/doc/ChangeLog:
* gdb.texinfo (Dump/Restore Files): Add detail about verilog dump
format.
---
gdb/ChangeLog | 10 ++++++++++
gdb/NEWS | 2 ++
gdb/cli/cli-dump.c | 38 ++++++++++++++++++++++++++++++++++++++
gdb/doc/ChangeLog | 5 +++++
gdb/doc/gdb.texinfo | 2 ++
5 files changed, 57 insertions(+)
Comments
Hi Andrew,
On 04/22/2015 11:24 PM, Andrew Burgess wrote:
> This patch extends the 'dump' command to generate output in the
> verilog hex format supported by bfd.
>
> OK to apply?
Sounds like gdb.base/dump.exp should be extended to cover this?
Thanks,
Pedro Alves
> From: Andrew Burgess <andrew.burgess@embecosm.com>
> Cc: Andrew Burgess <andrew.burgess@embecosm.com>
> Date: Wed, 22 Apr 2015 23:24:59 +0100
>
> diff --git a/gdb/NEWS b/gdb/NEWS
> index 62cbdcb..6ad68ac 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -42,6 +42,8 @@
> (no "set sysroot" or "file" commands are required). See "New remote
> packets" below.
>
> +* The "dump" command now supports verilog hex format.
This part is OK.
> static void
> +verilog_dump_command (char *cmd, int from_tty)
> +{
> + printf_unfiltered ("\"dump verilog\" must be followed by a subcommand.\n");
Shouldn't this message be in _()?
> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 0410702..4b78fb4 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -10890,6 +10890,8 @@ Intel hex format.
> Motorola S-record format.
> @item tekhex
> Tektronix Hex format.
> +@item verilog
> +Verilog Hex format.
> @end table
>
> @value{GDBN} uses the same definitions of these formats as the
OK for this part.
Thanks.
@@ -1,3 +1,13 @@
+2015-04-22 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * cli/cli-dump.c (verilog_cmdlist): New variable.
+ (dump_verilog_memory): New function.
+ (dump_verilog_value): New function.
+ (verilog_dump_command): New function.
+ (_initialize_cli_dump): Add new commands to support verilog dump
+ format.
+ * NEWS: Add entry for "dump verilog".
+
2015-04-22 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (handle_output_debug_string): Don't change
@@ -42,6 +42,8 @@
(no "set sysroot" or "file" commands are required). See "New remote
packets" below.
+* The "dump" command now supports verilog hex format.
+
* Python Scripting
** gdb.Objfile objects have a new attribute "username",
@@ -150,6 +150,7 @@ static struct cmd_list_element *dump_cmdlist;
static struct cmd_list_element *append_cmdlist;
static struct cmd_list_element *srec_cmdlist;
static struct cmd_list_element *ihex_cmdlist;
+static struct cmd_list_element *verilog_cmdlist;
static struct cmd_list_element *tekhex_cmdlist;
static struct cmd_list_element *binary_dump_cmdlist;
static struct cmd_list_element *binary_append_cmdlist;
@@ -335,6 +336,18 @@ dump_ihex_value (char *args, int from_tty)
}
static void
+dump_verilog_memory (char *args, int from_tty)
+{
+ dump_memory_to_file (args, FOPEN_WB, "verilog");
+}
+
+static void
+dump_verilog_value (char *args, int from_tty)
+{
+ dump_value_to_file (args, FOPEN_WB, "verilog");
+}
+
+static void
dump_tekhex_memory (char *args, int from_tty)
{
dump_memory_to_file (args, FOPEN_WB, "tekhex");
@@ -636,6 +649,13 @@ ihex_dump_command (char *cmd, int from_tty)
}
static void
+verilog_dump_command (char *cmd, int from_tty)
+{
+ printf_unfiltered ("\"dump verilog\" must be followed by a subcommand.\n");
+ help_list (verilog_cmdlist, "dump verilog ", all_commands, gdb_stdout);
+}
+
+static void
tekhex_dump_command (char *cmd, int from_tty)
{
printf_unfiltered ("\"dump tekhex\" must be followed by a subcommand.\n");
@@ -697,6 +717,12 @@ the specified FILE in raw target ordered bytes.");
0 /*allow-unknown*/,
&dump_cmdlist);
+ add_prefix_cmd ("verilog", all_commands, verilog_dump_command,
+ _("Write target code/data to a verilog hex file."),
+ &verilog_cmdlist, "dump verilog ",
+ 0 /*allow-unknown*/,
+ &dump_cmdlist);
+
add_prefix_cmd ("tekhex", all_commands, tekhex_dump_command,
_("Write target code/data to a tekhex file."),
&tekhex_cmdlist, "dump tekhex ",
@@ -739,6 +765,18 @@ Arguments are FILE EXPRESSION. Writes the value of EXPRESSION\n\
to the specified FILE in intel hex format."),
&ihex_cmdlist);
+ add_cmd ("memory", all_commands, dump_verilog_memory, _("\
+Write contents of memory to a verilog hex file.\n\
+Arguments are FILE START STOP. Writes the contents of memory within\n\
+the range [START .. STOP) to the specified FILE in verilog hex format."),
+ &verilog_cmdlist);
+
+ add_cmd ("value", all_commands, dump_verilog_value, _("\
+Write the value of an expression to a verilog hex file.\n\
+Arguments are FILE EXPRESSION. Writes the value of EXPRESSION\n\
+to the specified FILE in verilog hex format."),
+ &verilog_cmdlist);
+
add_cmd ("memory", all_commands, dump_tekhex_memory, _("\
Write contents of memory to a tekhex file.\n\
Arguments are FILE START STOP. Writes the contents of memory\n\
@@ -1,3 +1,8 @@
+2015-04-22 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * gdb.texinfo (Dump/Restore Files): Add detail about verilog dump
+ format.
+
2015-04-17 Gary Benson <gbenson@redhat.com>
* gdb.texinfo (Connecting to a Remote Target): Mention that
@@ -10890,6 +10890,8 @@ Intel hex format.
Motorola S-record format.
@item tekhex
Tektronix Hex format.
+@item verilog
+Verilog Hex format.
@end table
@value{GDBN} uses the same definitions of these formats as the