This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 1/2] Fix issues with gdb-memory-map.dtd
- From: Simon Marchi <simon dot marchi at ericsson dot com>
- To: <gdb-patches at sourceware dot org>, Joel Brobecker <brobecker at adacore dot com>
- Date: Fri, 24 Nov 2017 11:30:48 -0500
- Subject: Re: [PATCH 1/2] Fix issues with gdb-memory-map.dtd
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=simon dot marchi at ericsson dot com;
- References: <1510269503-12483-1-git-send-email-simon.marchi@ericsson.com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
On 2017-11-09 06:18 PM, Simon Marchi wrote:
> While writing a unit test for parse_memory_map, I tried to validate my
> test input against gdb-memory-map.dtd, and found a few problems with it.
> This doesn't influence how gdb parses it (AFAIK it doesn't use the
> linked dtd), but if you edit the xml file in an editor that supports
> dtds, you'll get plenty of errors.
>
> - The <memory-map> element accepts exactly one <memory> OR <property>
> as a child. This is a problem because you can't have multiple
> <memory> elements and you shouldn't be able to have <property> elements
> as direct children of <memory-map>.
> - The <memory> element wants exactly one <property> child. This is
> wrong, since you could have zero or more (even though we only
> support one kind of property currently).
> - I have no idea wht the device attribute of <memory> is, GDB doesn't
> read that. I searched back in time a bit but couldn't find a trace
> of it.
>
> I took the opportunity to tighten what is accepted as a value of the
> memory type and property name attributes. We currently accept any
> string, but we could restrict them to the values GDB really accepts (and
> which are documented).
>
> AFAIK, this "file" only exists in the documentation, in gdb.texinfo, so
> this is what I modified. However, it's also available at
> http://sourceware.org/gdb/gdb-memory-map.dtd. This one should be
> updated too, but I don't know how that should be done.
>
> gdb/doc/ChangeLog:
>
> * gdb.texinfo (Memory Map Format): Update gdb-memory-map.dtd.
> ---
> gdb/doc/gdb.texinfo | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 29d4789..37d3e3d 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -40807,18 +40807,17 @@ The formal DTD for memory map format is given below:
> <!-- .................................... .............. -->
> <!-- memory-map.dtd -->
> <!-- memory-map: Root element with versioning -->
> -<!ELEMENT memory-map (memory | property)>
> +<!ELEMENT memory-map (memory)*>
> <!ATTLIST memory-map version CDATA #FIXED "1.0.0">
> -<!ELEMENT memory (property)>
> +<!ELEMENT memory (property)*>
> <!-- memory: Specifies a memory region,
> and its type, or device. -->
> -<!ATTLIST memory type CDATA #REQUIRED
> +<!ATTLIST memory type (ram|rom|flash) #REQUIRED
> start CDATA #REQUIRED
> - length CDATA #REQUIRED
> - device CDATA #IMPLIED>
> + length CDATA #REQUIRED>
> <!-- property: Generic attribute tag -->
> <!ELEMENT property (#PCDATA | property)*>
> -<!ATTLIST property name CDATA #REQUIRED>
> +<!ATTLIST property name (blocksize) #REQUIRED>
> @end smallexample
>
> @node Thread List Format
>
Hi Joel,
You are probably the person that has the most chance to know how to
update this file:
http://sourceware.org/gdb/gdb-memory-map.dtd
Any idea?
Simon