gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
/* Helper routines for parsing XML using Expat.
|
|
|
|
|
2019-01-01 14:01:51 +08:00
|
|
|
Copyright (C) 2006-2019 Free Software Foundation, Inc.
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
|
|
|
|
This file is part of GDB.
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2007-08-24 02:08:50 +08:00
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2007-08-24 02:08:50 +08:00
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
|
|
|
|
|
|
|
|
#ifndef XML_SUPPORT_H
|
|
|
|
#define XML_SUPPORT_H
|
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
#include "gdb_obstack.h"
|
Rename common to gdbsupport
This is the next patch in the ongoing series to move gdbsever to the
top level.
This patch just renames the "common" directory. The idea is to do
this move in two parts: first rename the directory (this patch), then
move the directory to the top. This approach makes the patches a bit
more tractable.
I chose the name "gdbsupport" for the directory. However, as this
patch was largely written by sed, we could pick a new name without too
much difficulty.
Tested by the buildbot.
gdb/ChangeLog
2019-07-09 Tom Tromey <tom@tromey.com>
* contrib/ari/gdb_ari.sh: Change common to gdbsupport.
* configure: Rebuild.
* configure.ac: Change common to gdbsupport.
* gdbsupport: Rename from common.
* acinclude.m4: Change common to gdbsupport.
* Makefile.in (CONFIG_SRC_SUBDIR, COMMON_SFILES)
(HFILES_NO_SRCDIR, stamp-version, ALLDEPFILES): Change common to
gdbsupport.
* aarch64-tdep.c, ada-lang.c, ada-lang.h, agent.c, alloc.c,
amd64-darwin-tdep.c, amd64-dicos-tdep.c, amd64-fbsd-nat.c,
amd64-fbsd-tdep.c, amd64-linux-nat.c, amd64-linux-tdep.c,
amd64-nbsd-tdep.c, amd64-obsd-tdep.c, amd64-sol2-tdep.c,
amd64-tdep.c, amd64-windows-tdep.c, arch-utils.c,
arch/aarch64-insn.c, arch/aarch64.c, arch/aarch64.h, arch/amd64.c,
arch/amd64.h, arch/arm-get-next-pcs.c, arch/arm-linux.c,
arch/arm.c, arch/i386.c, arch/i386.h, arch/ppc-linux-common.c,
arch/riscv.c, arch/riscv.h, arch/tic6x.c, arm-tdep.c, auto-load.c,
auxv.c, ax-gdb.c, ax-general.c, ax.h, breakpoint.c, breakpoint.h,
btrace.c, btrace.h, build-id.c, build-id.h, c-lang.h, charset.c,
charset.h, cli/cli-cmds.c, cli/cli-cmds.h, cli/cli-decode.c,
cli/cli-dump.c, cli/cli-option.h, cli/cli-script.c,
coff-pe-read.c, command.h, compile/compile-c-support.c,
compile/compile-c.h, compile/compile-cplus-symbols.c,
compile/compile-cplus-types.c, compile/compile-cplus.h,
compile/compile-loc2c.c, compile/compile.c, completer.c,
completer.h, contrib/ari/gdb_ari.sh, corefile.c, corelow.c,
cp-support.c, cp-support.h, cp-valprint.c, csky-tdep.c, ctf.c,
darwin-nat.c, debug.c, defs.h, disasm-selftests.c, disasm.c,
disasm.h, dtrace-probe.c, dwarf-index-cache.c,
dwarf-index-cache.h, dwarf-index-write.c, dwarf2-frame.c,
dwarf2expr.c, dwarf2loc.c, dwarf2read.c, event-loop.c,
event-top.c, exceptions.c, exec.c, extension.h, fbsd-nat.c,
features/aarch64-core.c, features/aarch64-fpu.c,
features/aarch64-pauth.c, features/aarch64-sve.c,
features/i386/32bit-avx.c, features/i386/32bit-avx512.c,
features/i386/32bit-core.c, features/i386/32bit-linux.c,
features/i386/32bit-mpx.c, features/i386/32bit-pkeys.c,
features/i386/32bit-segments.c, features/i386/32bit-sse.c,
features/i386/64bit-avx.c, features/i386/64bit-avx512.c,
features/i386/64bit-core.c, features/i386/64bit-linux.c,
features/i386/64bit-mpx.c, features/i386/64bit-pkeys.c,
features/i386/64bit-segments.c, features/i386/64bit-sse.c,
features/i386/x32-core.c, features/riscv/32bit-cpu.c,
features/riscv/32bit-csr.c, features/riscv/32bit-fpu.c,
features/riscv/64bit-cpu.c, features/riscv/64bit-csr.c,
features/riscv/64bit-fpu.c, features/tic6x-c6xp.c,
features/tic6x-core.c, features/tic6x-gp.c, filename-seen-cache.h,
findcmd.c, findvar.c, fork-child.c, gcore.c, gdb_bfd.c, gdb_bfd.h,
gdb_proc_service.h, gdb_regex.c, gdb_select.h, gdb_usleep.c,
gdbarch-selftests.c, gdbthread.h, gdbtypes.h, gnu-nat.c,
go32-nat.c, guile/guile.c, guile/scm-ports.c,
guile/scm-safe-call.c, guile/scm-type.c, i386-fbsd-nat.c,
i386-fbsd-tdep.c, i386-go32-tdep.c, i386-linux-nat.c,
i386-linux-tdep.c, i386-tdep.c, i387-tdep.c,
ia64-libunwind-tdep.c, ia64-linux-nat.c, inf-child.c,
inf-ptrace.c, infcall.c, infcall.h, infcmd.c, inferior-iter.h,
inferior.c, inferior.h, inflow.c, inflow.h, infrun.c, infrun.h,
inline-frame.c, language.h, linespec.c, linux-fork.c, linux-nat.c,
linux-tdep.c, linux-thread-db.c, location.c, machoread.c,
macrotab.h, main.c, maint.c, maint.h, memattr.c, memrange.h,
mi/mi-cmd-break.h, mi/mi-cmd-env.c, mi/mi-cmd-stack.c,
mi/mi-cmd-var.c, mi/mi-interp.c, mi/mi-main.c, mi/mi-parse.h,
minsyms.c, mips-linux-tdep.c, namespace.h,
nat/aarch64-linux-hw-point.c, nat/aarch64-linux-hw-point.h,
nat/aarch64-linux.c, nat/aarch64-sve-linux-ptrace.c,
nat/amd64-linux-siginfo.c, nat/fork-inferior.c,
nat/linux-btrace.c, nat/linux-btrace.h, nat/linux-namespaces.c,
nat/linux-nat.h, nat/linux-osdata.c, nat/linux-personality.c,
nat/linux-procfs.c, nat/linux-ptrace.c, nat/linux-ptrace.h,
nat/linux-waitpid.c, nat/mips-linux-watch.c,
nat/mips-linux-watch.h, nat/ppc-linux.c, nat/x86-dregs.c,
nat/x86-dregs.h, nat/x86-linux-dregs.c, nat/x86-linux.c,
nto-procfs.c, nto-tdep.c, objfile-flags.h, objfiles.c, objfiles.h,
obsd-nat.c, observable.h, osdata.c, p-valprint.c, parse.c,
parser-defs.h, ppc-linux-nat.c, printcmd.c, probe.c, proc-api.c,
procfs.c, producer.c, progspace.h, psymtab.h,
python/py-framefilter.c, python/py-inferior.c, python/py-ref.h,
python/py-type.c, python/python.c, record-btrace.c, record-full.c,
record.c, record.h, regcache-dump.c, regcache.c, regcache.h,
remote-fileio.c, remote-fileio.h, remote-sim.c, remote.c,
riscv-tdep.c, rs6000-aix-tdep.c, rust-exp.y, s12z-tdep.c,
selftest-arch.c, ser-base.c, ser-event.c, ser-pipe.c, ser-tcp.c,
ser-unix.c, skip.c, solib-aix.c, solib-target.c, solib.c,
source-cache.c, source.c, source.h, sparc-nat.c, spu-linux-nat.c,
stack.c, stap-probe.c, symfile-add-flags.h, symfile.c, symfile.h,
symtab.c, symtab.h, target-descriptions.c, target-descriptions.h,
target-memory.c, target.c, target.h, target/waitstatus.c,
target/waitstatus.h, thread-iter.h, thread.c, tilegx-tdep.c,
top.c, top.h, tracefile-tfile.c, tracefile.c, tracepoint.c,
tracepoint.h, tui/tui-io.c, ui-file.c, ui-out.h,
unittests/array-view-selftests.c,
unittests/child-path-selftests.c, unittests/cli-utils-selftests.c,
unittests/common-utils-selftests.c,
unittests/copy_bitwise-selftests.c, unittests/environ-selftests.c,
unittests/format_pieces-selftests.c,
unittests/function-view-selftests.c,
unittests/lookup_name_info-selftests.c,
unittests/memory-map-selftests.c, unittests/memrange-selftests.c,
unittests/mkdir-recursive-selftests.c,
unittests/observable-selftests.c,
unittests/offset-type-selftests.c, unittests/optional-selftests.c,
unittests/parse-connection-spec-selftests.c,
unittests/ptid-selftests.c, unittests/rsp-low-selftests.c,
unittests/scoped_fd-selftests.c,
unittests/scoped_mmap-selftests.c,
unittests/scoped_restore-selftests.c,
unittests/string_view-selftests.c, unittests/style-selftests.c,
unittests/tracepoint-selftests.c, unittests/unpack-selftests.c,
unittests/utils-selftests.c, unittests/xml-utils-selftests.c,
utils.c, utils.h, valarith.c, valops.c, valprint.c, value.c,
value.h, varobj.c, varobj.h, windows-nat.c, x86-linux-nat.c,
xml-support.c, xml-support.h, xml-tdesc.h, xstormy16-tdep.c,
xtensa-linux-nat.c, dwarf2read.h: Change common to gdbsupport.
gdb/gdbserver/ChangeLog
2019-07-09 Tom Tromey <tom@tromey.com>
* configure: Rebuild.
* configure.ac: Change common to gdbsupport.
* acinclude.m4: Change common to gdbsupport.
* Makefile.in (SFILES, OBS, GDBREPLAY_OBS, IPA_OBJS)
(version-generated.c, gdbsupport/%-ipa.o, gdbsupport/%.o): Change
common to gdbsupport.
* ax.c, event-loop.c, fork-child.c, gdb_proc_service.h,
gdbreplay.c, gdbthread.h, hostio-errno.c, hostio.c, i387-fp.c,
inferiors.c, inferiors.h, linux-aarch64-tdesc-selftest.c,
linux-amd64-ipa.c, linux-i386-ipa.c, linux-low.c,
linux-tic6x-low.c, linux-x86-low.c, linux-x86-tdesc-selftest.c,
linux-x86-tdesc.c, lynx-i386-low.c, lynx-low.c, mem-break.h,
nto-x86-low.c, regcache.c, regcache.h, remote-utils.c, server.c,
server.h, spu-low.c, symbol.c, target.h, tdesc.c, tdesc.h,
thread-db.c, tracepoint.c, win32-i386-low.c, win32-low.c: Change
common to gdbsupport.
2019-05-06 10:29:24 +08:00
|
|
|
#include "gdbsupport/vec.h"
|
|
|
|
#include "gdbsupport/xml-utils.h"
|
|
|
|
#include "gdbsupport/byte-vector.h"
|
Don't include gdbarch.h from defs.h
I touched symtab.h and was surprised to see how many files were
rebuilt. I looked into it a bit, and found that defs.h includes
gdbarch.h, which in turn includes many things.
gdbarch.h is only needed by a minority ofthe files in gdb, so this
patch removes the include from defs.h and updates the fallout.
I did "wc -l" on the files in build/gdb/.deps; this patch reduces the
line count from 139935 to 137030; so there are definitely future
build-time savings here.
Note that while I configured with --enable-targets=all, it's possible
that some *-nat.c file needs an update. I could not test all of
these. The buildbot caught a few problems along these lines.
gdb/ChangeLog
2019-07-10 Tom Tromey <tom@tromey.com>
* defs.h: Don't include gdbarch.h.
* aarch64-ravenscar-thread.c, aarch64-tdep.c, alpha-bsd-tdep.h,
alpha-linux-tdep.c, alpha-mdebug-tdep.c, arch-utils.h, arm-tdep.h,
ax-general.c, btrace.c, buildsym-legacy.c, buildsym.h, c-lang.c,
cli/cli-decode.h, cli/cli-dump.c, cli/cli-script.h,
cli/cli-style.h, coff-pe-read.h, compile/compile-c-support.c,
compile/compile-cplus.h, compile/compile-loc2c.c, corefile.c,
cp-valprint.c, cris-linux-tdep.c, ctf.c, d-lang.c, d-namespace.c,
dcache.c, dicos-tdep.c, dictionary.c, disasm-selftests.c,
dummy-frame.c, dummy-frame.h, dwarf2-frame-tailcall.c,
dwarf2expr.c, expression.h, f-lang.c, frame-base.c,
frame-unwind.c, frv-linux-tdep.c, gdbarch-selftests.c, gdbtypes.h,
go-lang.c, hppa-nbsd-tdep.c, hppa-obsd-tdep.c, i386-dicos-tdep.c,
i386-tdep.h, ia64-vms-tdep.c, interps.h, language.c,
linux-record.c, location.h, m2-lang.c, m32r-linux-tdep.c,
mem-break.c, memattr.c, mn10300-linux-tdep.c, nios2-linux-tdep.c,
objfiles.h, opencl-lang.c, or1k-linux-tdep.c, p-lang.c,
parser-defs.h, ppc-tdep.h, probe.h, python/py-record-btrace.c,
record-btrace.c, record.h, regcache-dump.c, regcache.h,
riscv-fbsd-tdep.c, riscv-linux-tdep.c, rust-exp.y,
sh-linux-tdep.c, sh-nbsd-tdep.c, source-cache.c,
sparc-nbsd-tdep.c, sparc-obsd-tdep.c, sparc-ravenscar-thread.c,
sparc64-fbsd-tdep.c, std-regs.c, target-descriptions.h,
target-float.c, tic6x-linux-tdep.c, tilegx-linux-tdep.c, top.c,
tracefile.c, trad-frame.c, type-stack.h, ui-style.c, utils.c,
utils.h, valarith.c, valprint.c, varobj.c, x86-tdep.c,
xml-support.h, xtensa-linux-tdep.c, cli/cli-cmds.h: Update.
* s390-linux-nat.c, procfs.c, inf-ptrace.c: Likewise.
2019-06-10 05:21:02 +08:00
|
|
|
#include "gdbsupport/gdb_optional.h"
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
struct gdb_xml_parser;
|
|
|
|
struct gdb_xml_element;
|
|
|
|
struct gdb_xml_attribute;
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
|
* Makefile.in (XMLFILES): New.
(COMMON_OBS): Add xml-builtin.o.
(xml-builtin.c, stamp-xml): New rules.
(xml-tdesc.o): Update.
* features/feature_to_c.sh: New file.
* xml-support.c (MAX_XINCLUDE_DEPTH): Define.
(struct gdb_xml_parser): Add dtd_name and is_xinclude.
(gdb_xml_start_element): Initialize scope after possibly reallocating
scopes. Move cleanup later. Handle the XInclude description
specially.
(gdb_xml_end_element): Only parse the body if there is a current element.
Call XML_DefaultCurrent if there is no element.
(gdb_xml_fetch_external_entity, gdb_xml_use_dtd): New.
(struct xinclude_parsing_data, xinclude_start_include)
(xinclude_end_include, xml_xinclude_default)
(xml_xinclude_start_doctype, xml_xinclude_end_doctype)
(xml_xinclude_xml_decl, xml_xinclude_cleanup, xinclude_attributes)
(xinclude_elements, xml_process_xincludes, fetch_xml_builtin): New.
* xml-support.h (xml_fetch_another, xml_process_xincludes)
(fetch_xml_builtin, xml_builtin, gdb_xml_use_dtd): New declarations.
* xml-tdesc.c (tdesc_parse_xml): Add fetcher_baton argument. Expand
XInclude directives. Use the compiled in DTD.
(fetch_xml_from_file): Add baton argument. Treat it as a containing
directory name. Do not warn here.
(file_read_description_xml): Update call. Warn here instead. Pass
a dirname as baton.
(fetch_available_features_from_target): New.
(target_read_description_xml): Use it.
* features/gdb-target.dtd: Add copyright notice. Use xinclude.dtd
to handle XInclude.
* features/xinclude.dtd: New file.
* gdb.xml/bad-include.xml, gdb.xml/inc-2.xml, gdb.xml/inc-body.xml,
gdb.xml/includes.xml, gdb.xml/tdesc-xinclude.exp: New files.
* gdb.texinfo (Target Description Format): Add section on XInclude.
2007-02-08 06:48:06 +08:00
|
|
|
/* Return an XML document which was compiled into GDB, from
|
|
|
|
the given FILENAME, or NULL if the file was not compiled in. */
|
|
|
|
|
|
|
|
const char *fetch_xml_builtin (const char *filename);
|
|
|
|
|
2007-02-27 03:20:21 +08:00
|
|
|
/* A to_xfer_partial helper function which reads XML files which were
|
|
|
|
compiled into GDB. The target may call this function from its own
|
|
|
|
to_xfer_partial handler, after converting object and annex to the
|
|
|
|
appropriate filename. */
|
|
|
|
|
|
|
|
LONGEST xml_builtin_xfer_partial (const char *filename,
|
|
|
|
gdb_byte *readbuf, const gdb_byte *writebuf,
|
|
|
|
ULONGEST offset, LONGEST len);
|
|
|
|
|
* Makefile.in (XMLFILES): New.
(COMMON_OBS): Add xml-builtin.o.
(xml-builtin.c, stamp-xml): New rules.
(xml-tdesc.o): Update.
* features/feature_to_c.sh: New file.
* xml-support.c (MAX_XINCLUDE_DEPTH): Define.
(struct gdb_xml_parser): Add dtd_name and is_xinclude.
(gdb_xml_start_element): Initialize scope after possibly reallocating
scopes. Move cleanup later. Handle the XInclude description
specially.
(gdb_xml_end_element): Only parse the body if there is a current element.
Call XML_DefaultCurrent if there is no element.
(gdb_xml_fetch_external_entity, gdb_xml_use_dtd): New.
(struct xinclude_parsing_data, xinclude_start_include)
(xinclude_end_include, xml_xinclude_default)
(xml_xinclude_start_doctype, xml_xinclude_end_doctype)
(xml_xinclude_xml_decl, xml_xinclude_cleanup, xinclude_attributes)
(xinclude_elements, xml_process_xincludes, fetch_xml_builtin): New.
* xml-support.h (xml_fetch_another, xml_process_xincludes)
(fetch_xml_builtin, xml_builtin, gdb_xml_use_dtd): New declarations.
* xml-tdesc.c (tdesc_parse_xml): Add fetcher_baton argument. Expand
XInclude directives. Use the compiled in DTD.
(fetch_xml_from_file): Add baton argument. Treat it as a containing
directory name. Do not warn here.
(file_read_description_xml): Update call. Warn here instead. Pass
a dirname as baton.
(fetch_available_features_from_target): New.
(target_read_description_xml): Use it.
* features/gdb-target.dtd: Add copyright notice. Use xinclude.dtd
to handle XInclude.
* features/xinclude.dtd: New file.
* gdb.xml/bad-include.xml, gdb.xml/inc-2.xml, gdb.xml/inc-body.xml,
gdb.xml/includes.xml, gdb.xml/tdesc-xinclude.exp: New files.
* gdb.texinfo (Target Description Format): Add section on XInclude.
2007-02-08 06:48:06 +08:00
|
|
|
/* The text of compiled-in XML documents, from xml-builtin.c
|
|
|
|
(generated). */
|
2007-09-04 07:06:35 +08:00
|
|
|
|
* Makefile.in (XMLFILES): New.
(COMMON_OBS): Add xml-builtin.o.
(xml-builtin.c, stamp-xml): New rules.
(xml-tdesc.o): Update.
* features/feature_to_c.sh: New file.
* xml-support.c (MAX_XINCLUDE_DEPTH): Define.
(struct gdb_xml_parser): Add dtd_name and is_xinclude.
(gdb_xml_start_element): Initialize scope after possibly reallocating
scopes. Move cleanup later. Handle the XInclude description
specially.
(gdb_xml_end_element): Only parse the body if there is a current element.
Call XML_DefaultCurrent if there is no element.
(gdb_xml_fetch_external_entity, gdb_xml_use_dtd): New.
(struct xinclude_parsing_data, xinclude_start_include)
(xinclude_end_include, xml_xinclude_default)
(xml_xinclude_start_doctype, xml_xinclude_end_doctype)
(xml_xinclude_xml_decl, xml_xinclude_cleanup, xinclude_attributes)
(xinclude_elements, xml_process_xincludes, fetch_xml_builtin): New.
* xml-support.h (xml_fetch_another, xml_process_xincludes)
(fetch_xml_builtin, xml_builtin, gdb_xml_use_dtd): New declarations.
* xml-tdesc.c (tdesc_parse_xml): Add fetcher_baton argument. Expand
XInclude directives. Use the compiled in DTD.
(fetch_xml_from_file): Add baton argument. Treat it as a containing
directory name. Do not warn here.
(file_read_description_xml): Update call. Warn here instead. Pass
a dirname as baton.
(fetch_available_features_from_target): New.
(target_read_description_xml): Use it.
* features/gdb-target.dtd: Add copyright notice. Use xinclude.dtd
to handle XInclude.
* features/xinclude.dtd: New file.
* gdb.xml/bad-include.xml, gdb.xml/inc-2.xml, gdb.xml/inc-body.xml,
gdb.xml/includes.xml, gdb.xml/tdesc-xinclude.exp: New files.
* gdb.texinfo (Target Description Format): Add section on XInclude.
2007-02-08 06:48:06 +08:00
|
|
|
extern const char *xml_builtin[][2];
|
|
|
|
|
2007-09-04 07:06:35 +08:00
|
|
|
/* Support for XInclude. */
|
|
|
|
|
|
|
|
/* Callback to fetch a new XML file, based on the provided HREF. */
|
|
|
|
|
Make target_read_alloc & al return vectors
This patch started by changing target_read_alloc_1 to return a
byte_vector, to avoid manual memory management (in target_read_alloc_1
and in the callers). To communicate failures to the callers, it
actually returns a gdb::optional<gdb::byte_vector>.
Adjusting target_read_stralloc was a bit more tricky, since it wants to
return a buffer of char, and not gdb_byte. Since you can't just cast a
gdb::byte_vector into a gdb::def_vector<char>, I made
target_read_alloc_1 templated, so both versions (that return vectors of
gdb_byte and char) are generated. Since target_read_stralloc now
returns a gdb::char_vector instead of a gdb::unique_xmalloc_ptr<char>, a
few callers need to be adjusted.
gdb/ChangeLog:
* common/byte-vector.h (char_vector): New type.
* target.h (target_read_alloc): Return
gdb::optional<byte_vector>.
(target_read_stralloc): Return gdb::optional<char_vector>.
(target_get_osdata): Return gdb::optional<char_vector>.
* target.c (target_read_alloc_1): Templatize. Replacement
manual memory management with vector.
(target_read_alloc): Change return type, adjust.
(target_read_stralloc): Change return type, adjust.
(target_get_osdata): Change return type, adjust.
* auxv.c (struct auxv_info) <length>: Remove.
<data>: Change type to gdb::optional<byte_vector>.
(auxv_inferior_data_cleanup): Free auxv_info with delete.
(get_auxv_inferior_data): Allocate auxv_info with new, adjust.
(target_auxv_search): Adjust.
(fprint_target_auxv): Adjust.
* avr-tdep.c (avr_io_reg_read_command): Adjust.
* linux-tdep.c (linux_spu_make_corefile_notes): Adjust.
(linux_make_corefile_notes): Adjust.
* osdata.c (get_osdata): Adjust.
* remote.c (remote_get_threads_with_qxfer): Adjust.
(remote_memory_map): Adjust.
(remote_traceframe_info): Adjust.
(btrace_read_config): Adjust.
(remote_read_btrace): Adjust.
(remote_pid_to_exec_file): Adjust.
* solib-aix.c (solib_aix_get_library_list): Adjust.
* solib-dsbt.c (decode_loadmap): Don't free buf.
(dsbt_get_initial_loadmaps): Adjust.
* solib-svr4.c (svr4_current_sos_via_xfer_libraries): Adjust.
* solib-target.c (solib_target_current_sos): Adjust.
* tracepoint.c (sdata_make_value): Adjust.
* xml-support.c (xinclude_start_include): Adjust.
(xml_fetch_content_from_file): Adjust.
* xml-support.h (xml_fetch_another): Change return type.
(xml_fetch_content_from_file): Change return type.
* xml-syscall.c (xml_init_syscalls_info): Adjust.
* xml-tdesc.c (file_read_description_xml): Adjust.
(fetch_available_features_from_target): Change return type.
(target_fetch_description_xml): Adjust.
(target_read_description_xml): Adjust.
2018-04-08 01:19:12 +08:00
|
|
|
typedef gdb::optional<gdb::char_vector> (*xml_fetch_another) (const char *href,
|
|
|
|
void *baton);
|
2007-09-04 07:06:35 +08:00
|
|
|
|
2017-04-19 04:39:25 +08:00
|
|
|
/* Append the expansion of TEXT after processing <xi:include> tags in
|
|
|
|
RESULT. FETCHER will be called (with FETCHER_BATON) to retrieve
|
|
|
|
any new files. DEPTH should be zero on the initial call.
|
2007-09-04 07:06:35 +08:00
|
|
|
|
2017-04-19 04:39:25 +08:00
|
|
|
On failure, this function uses NAME in a warning and returns false.
|
2007-09-04 07:06:35 +08:00
|
|
|
It may throw an exception, but does not for XML parsing
|
|
|
|
problems. */
|
|
|
|
|
2017-04-19 04:39:25 +08:00
|
|
|
bool xml_process_xincludes (std::string &result,
|
|
|
|
const char *name, const char *text,
|
|
|
|
xml_fetch_another fetcher, void *fetcher_baton,
|
|
|
|
int depth);
|
2007-09-04 07:06:35 +08:00
|
|
|
|
* Makefile.in (XMLFILES): New.
(COMMON_OBS): Add xml-builtin.o.
(xml-builtin.c, stamp-xml): New rules.
(xml-tdesc.o): Update.
* features/feature_to_c.sh: New file.
* xml-support.c (MAX_XINCLUDE_DEPTH): Define.
(struct gdb_xml_parser): Add dtd_name and is_xinclude.
(gdb_xml_start_element): Initialize scope after possibly reallocating
scopes. Move cleanup later. Handle the XInclude description
specially.
(gdb_xml_end_element): Only parse the body if there is a current element.
Call XML_DefaultCurrent if there is no element.
(gdb_xml_fetch_external_entity, gdb_xml_use_dtd): New.
(struct xinclude_parsing_data, xinclude_start_include)
(xinclude_end_include, xml_xinclude_default)
(xml_xinclude_start_doctype, xml_xinclude_end_doctype)
(xml_xinclude_xml_decl, xml_xinclude_cleanup, xinclude_attributes)
(xinclude_elements, xml_process_xincludes, fetch_xml_builtin): New.
* xml-support.h (xml_fetch_another, xml_process_xincludes)
(fetch_xml_builtin, xml_builtin, gdb_xml_use_dtd): New declarations.
* xml-tdesc.c (tdesc_parse_xml): Add fetcher_baton argument. Expand
XInclude directives. Use the compiled in DTD.
(fetch_xml_from_file): Add baton argument. Treat it as a containing
directory name. Do not warn here.
(file_read_description_xml): Update call. Warn here instead. Pass
a dirname as baton.
(fetch_available_features_from_target): New.
(target_read_description_xml): Use it.
* features/gdb-target.dtd: Add copyright notice. Use xinclude.dtd
to handle XInclude.
* features/xinclude.dtd: New file.
* gdb.xml/bad-include.xml, gdb.xml/inc-2.xml, gdb.xml/inc-body.xml,
gdb.xml/includes.xml, gdb.xml/tdesc-xinclude.exp: New files.
* gdb.texinfo (Target Description Format): Add section on XInclude.
2007-02-08 06:48:06 +08:00
|
|
|
/* Simplified XML parser infrastructure. */
|
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
/* A name and value pair, used to record parsed attributes. */
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
struct gdb_xml_value
|
|
|
|
{
|
2018-01-07 22:29:52 +08:00
|
|
|
gdb_xml_value (const char *name_, void *value_)
|
|
|
|
: name (name_), value (value_)
|
|
|
|
{}
|
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
const char *name;
|
2018-01-07 22:29:52 +08:00
|
|
|
gdb::unique_xmalloc_ptr<void> value;
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
};
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
/* The type of an attribute handler.
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
PARSER is the current XML parser, which should be used to issue any
|
|
|
|
debugging or error messages. The second argument is the
|
|
|
|
corresponding attribute description, so that a single handler can
|
|
|
|
be used for multiple attributes; the attribute name is available
|
|
|
|
for error messages and the handler data is available for additional
|
|
|
|
customization (see gdb_xml_parse_attr_enum). VALUE is the string
|
|
|
|
value of the attribute.
|
|
|
|
|
|
|
|
The returned value should be freeable with xfree, and will be freed
|
|
|
|
after the start handler is called. Errors should be reported by
|
|
|
|
calling gdb_xml_error. */
|
|
|
|
|
|
|
|
typedef void *(gdb_xml_attribute_handler) (struct gdb_xml_parser *parser,
|
|
|
|
const struct gdb_xml_attribute *,
|
|
|
|
const char *value);
|
|
|
|
|
|
|
|
/* Flags for attributes. If no flags are specified, the attribute is
|
|
|
|
required. */
|
|
|
|
|
|
|
|
enum gdb_xml_attribute_flag
|
|
|
|
{
|
|
|
|
GDB_XML_AF_NONE,
|
|
|
|
GDB_XML_AF_OPTIONAL = 1 << 0, /* The attribute is optional. */
|
|
|
|
};
|
|
|
|
|
|
|
|
/* An expected attribute and the handler to call when it is
|
|
|
|
encountered. Arrays of struct gdb_xml_attribute are terminated
|
|
|
|
by an entry with NAME == NULL. */
|
|
|
|
|
|
|
|
struct gdb_xml_attribute
|
|
|
|
{
|
|
|
|
const char *name;
|
|
|
|
int flags;
|
|
|
|
gdb_xml_attribute_handler *handler;
|
|
|
|
const void *handler_data;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Flags for elements. If no flags are specified, the element is
|
|
|
|
required exactly once. */
|
|
|
|
|
|
|
|
enum gdb_xml_element_flag
|
|
|
|
{
|
|
|
|
GDB_XML_EF_NONE,
|
|
|
|
GDB_XML_EF_OPTIONAL = 1 << 0, /* The element is optional. */
|
|
|
|
GDB_XML_EF_REPEATABLE = 1 << 1, /* The element is repeatable. */
|
|
|
|
};
|
|
|
|
|
|
|
|
/* A handler called at the beginning of an element.
|
|
|
|
|
|
|
|
PARSER is the current XML parser, which should be used to issue any
|
|
|
|
debugging or error messages. ELEMENT is the current element.
|
|
|
|
USER_DATA is the opaque pointer supplied when the parser was
|
|
|
|
created. ATTRIBUTES is a vector of the values of any attributes
|
|
|
|
attached to this element.
|
|
|
|
|
|
|
|
The start handler will only be called if all the required
|
|
|
|
attributes were present and parsed successfully, and elements of
|
|
|
|
ATTRIBUTES are guaranteed to be in the same order used in
|
|
|
|
ELEMENT->ATTRIBUTES (not the order from the XML file). Accordingly
|
|
|
|
fixed offsets can be used to find any non-optional attributes as
|
|
|
|
long as no optional attributes precede them. */
|
|
|
|
|
|
|
|
typedef void (gdb_xml_element_start_handler)
|
|
|
|
(struct gdb_xml_parser *parser, const struct gdb_xml_element *element,
|
2018-01-07 22:29:52 +08:00
|
|
|
void *user_data, std::vector<gdb_xml_value> &attributes);
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
|
|
|
|
/* A handler called at the end of an element.
|
|
|
|
|
|
|
|
PARSER, ELEMENT, and USER_DATA are as for the start handler. BODY
|
|
|
|
is any accumulated body text inside the element, with leading and
|
|
|
|
trailing whitespace removed. It will never be NULL. */
|
|
|
|
|
|
|
|
typedef void (gdb_xml_element_end_handler)
|
|
|
|
(struct gdb_xml_parser *, const struct gdb_xml_element *,
|
|
|
|
void *user_data, const char *body_text);
|
|
|
|
|
|
|
|
/* An expected element and the handlers to call when it is
|
|
|
|
encountered. Arrays of struct gdb_xml_element are terminated
|
|
|
|
by an entry with NAME == NULL. */
|
|
|
|
|
|
|
|
struct gdb_xml_element
|
|
|
|
{
|
|
|
|
const char *name;
|
|
|
|
const struct gdb_xml_attribute *attributes;
|
|
|
|
const struct gdb_xml_element *children;
|
|
|
|
int flags;
|
|
|
|
|
|
|
|
gdb_xml_element_start_handler *start_handler;
|
|
|
|
gdb_xml_element_end_handler *end_handler;
|
|
|
|
};
|
|
|
|
|
2011-01-25 17:49:59 +08:00
|
|
|
/* Parse a XML document. DOCUMENT is the data to parse, which should
|
|
|
|
be NUL-terminated. If non-NULL, use the compiled-in DTD named
|
|
|
|
DTD_NAME to drive the parsing.
|
|
|
|
|
|
|
|
The return value is 0 for success or -1 for error. It may throw,
|
|
|
|
but only if something unexpected goes wrong during parsing; parse
|
|
|
|
errors will be caught, warned about, and reported as failure. */
|
|
|
|
|
|
|
|
int gdb_xml_parse_quick (const char *name, const char *dtd_name,
|
|
|
|
const struct gdb_xml_element *elements,
|
|
|
|
const char *document, void *user_data);
|
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
/* Issue a debugging message from one of PARSER's handlers. */
|
|
|
|
|
|
|
|
void gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...)
|
2017-03-27 19:28:03 +08:00
|
|
|
ATTRIBUTE_PRINTF (2, 3);
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
|
|
|
|
/* Issue an error message from one of PARSER's handlers, and stop
|
|
|
|
parsing. */
|
|
|
|
|
|
|
|
void gdb_xml_error (struct gdb_xml_parser *parser, const char *format, ...)
|
2017-03-27 19:28:03 +08:00
|
|
|
ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3);
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
|
2011-02-03 00:12:59 +08:00
|
|
|
/* Find the attribute named NAME in the set of parsed attributes
|
|
|
|
ATTRIBUTES. Returns NULL if not found. */
|
|
|
|
|
2018-01-07 22:29:52 +08:00
|
|
|
struct gdb_xml_value *xml_find_attribute
|
|
|
|
(std::vector<gdb_xml_value> &attributes, const char *name);
|
2011-02-03 00:12:59 +08:00
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
/* Parse an integer attribute into a ULONGEST. */
|
|
|
|
|
|
|
|
extern gdb_xml_attribute_handler gdb_xml_parse_attr_ulongest;
|
|
|
|
|
|
|
|
/* Map NAME to VALUE. A struct gdb_xml_enum * should be saved as the
|
|
|
|
value of handler_data when using gdb_xml_parse_attr_enum to parse a
|
|
|
|
fixed list of possible strings. The list is terminated by an entry
|
|
|
|
with NAME == NULL. */
|
|
|
|
|
|
|
|
struct gdb_xml_enum
|
|
|
|
{
|
|
|
|
const char *name;
|
|
|
|
ULONGEST value;
|
|
|
|
};
|
|
|
|
|
* Makefile.in (arm-tdep.o, eval.o, target-descriptions.o)
(xml-tdesc.o): Update.
* xml-support.c: Add a comment.
(gdb_xml_enums_boolean): New variable.
(gdb_xml_parse_attr_enum): Use strcasecmp.
* xml-support.h (gdb_xml_enums_boolean): Declare.
* xml-tdesc.c (struct tdesc_parsing_data): Record current_feature,
next_regnum, and current_union.
(tdesc_start_feature, tdesc_start_reg, tdesc_start_union)
(tdesc_end_union, tdesc_start_field, tdesc_start_vector)
(field_attributes, union_children, reg_attributes, union_attributes)
(vector_attributes, feature_attributes, feature_children): New.
(target_children): Make static. Add <feature>.
(tdesc_elements): Make static.
* target-descriptions.c (struct tdesc_reg, tdesc_reg_p, type_p)
(struct tdesc_feature, tdesc_feature_p): New types.
(struct target_desc): Add features member.
(struct tdesc_arch_data, tdesc_data): New.
(target_find_description): Clarify error message. Warn about
ignored register descriptions.
(tdesc_has_registers, tdesc_find_feature, tdesc_feature_name)
(tdesc_named_type, tdesc_data_init, tdesc_data_alloc)
(tdesc_data_cleanup, tdesc_numbered_register)
(tdesc_numbered_register_choices, tdesc_find_register)
(tdesc_register_name, tdesc_register_type)
(tdesc_remote_register_number, tdesc_register_reggroup_p)
(set_tdesc_pseudo_register_name, set_tdesc_pseudo_register_type)
(set_tdesc_pseudo_register_reggroup_p, tdesc_use_registers)
(tdesc_free_reg, tdesc_create_reg, tdesc_free_feature)
(tdesc_create_feature, tdesc_record_type): New.
(free_target_description): Free features.
(_initialize_target_descriptions): Initialize tdesc_data.
* arch-utils.c (default_remote_register_number): New.
* arch-utils.h (default_remote_register_number): New prototype.
* target-descriptions.h (set_tdesc_pseudo_register_name)
(set_tdesc_pseudo_register_type, set_tdesc_pseudo_register_reggroup_p)
(tdesc_use_registers, tdesc_data_alloc, tdesc_data_cleanup)
(tdesc_numbered_register, tdesc_numbered_register_choices)
(tdesc_has_registers, tdesc_find_feature, tdesc_feature_name)
(tdesc_named_type, tdesc_create_feature, tdesc_record_type)
(tdesc_create_reg): Declare.
* gdbarch.sh (remote_register_number): New entry.
* gdbarch.c, gdbarch.h: Regenerate.
* remote.c (init_remote_state): Use gdbarch_remote_register_number.
* features/gdb-target.dtd: Add feature, reg, vector, union, and field.
* arm-tdep.c (arm_register_aliases): New.
(arm_register_name_strings): Rename to...
(arm_register_names): ...this. Make const. Delete the old version.
(current_option, arm_register_byte): Delete.
(set_disassembly_style): Simplify. Do not adjust arm_register_names.
(value_of_arm_user_reg): New.
(arm_gdbarch_init): Verify any described registers. Call
tdesc_use_registers. Don't use arm_register_byte. Create aliases
for standard register names.
(_initialize_arm_tdep): Do not adjust arm_register_names.
* user-regs.c (struct user_reg): Add baton member.
(append_user_reg, user_reg_add_builtin, user_regs_init)
(user_reg_add, value_of_user_reg): Use a baton for user
register functions.
* std-regs.c: Update.
* user-regs.h (user_reg_read_ftype, user_reg_add_builtin)
(user_reg_add): Add baton argument.
* NEWS: Mention target description register support.
* features/arm-core.xml, features/arm-fpa.xml: New.
* eval.c (evaluate_subexp_standard): Allow ptype $register
when the program is not running.
* gdb.texinfo (-target-disconnect): Use @smallexample.
(Requirements): Add anchor for Expat. Update description.
(Target Descriptions): Mention Expat.
(Target Description Format): Document new elements. Use
@smallexample.
(Predefined Target Types, Standard Target Features): New sections.
* doc/gdbint.texinfo (Target Descriptions): New section.
* gdb.xml/single-reg.xml, gdb.xml/tdesc-regs.exp,
gdb.xml/core-only.xml, gdb.xml/extra-regs.xml: New files.
2007-02-09 05:00:36 +08:00
|
|
|
/* A handler_data for yes/no boolean values. */
|
|
|
|
extern const struct gdb_xml_enum gdb_xml_enums_boolean[];
|
|
|
|
|
* memory-map.c (struct_memory_map_parsing_data): Remove most
members. Make property_name an array.
(free_memory_map_parsing_data, memory_map_start_element)
(memory_map_end_element, memory_map_character_data): Delete.
(memory_map_start_memory, memory_map_end_memory)
(memory_map_start_property, memory_map_end_property): New functions.
(property_attributes, memory_children, memory_type_enum)
(memory_attributes, memory_map_children, memory_map_elements): New.
(parse_memory_map): Rewrite.
* xml-support.c (debug_xml): New.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, free_xml_parser, make_cleanup_free_xml_parser):
Delete.
(struct scope_level, struct gdb_xml_parser, gdb_xml_body_text)
(gdb_xml_debug, gdb_xml_error, gdb_xml_values_cleanup)
(gdb_xml_start_element, gdb_xml_start_element_wrapper)
(gdb_xml_end_element, gdb_xml_end_element_wrapper, gdb_xml_cleanup)
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse)
(gdb_xml_parse_ulongest, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, show_debug_xml, _initialize_xml_support):
New.
* xml-support.h (struct gdb_xml_value, gdb_xml_attribute_handler)
(enum gdb_xml_attribute_flag, struct gdb_xml_attribute)
(enum gdb_xml_element_flag, struct gdb_xml_element)
(gdb_xml_element_start_handler, gdb_xml_element_end_handler)
(struct gdb_xml_enum): New.
(gdb_xml_create_parser_and_cleanup, gdb_xml_parse, gdb_xml_debug)
(gdb_xml_error, gdb_xml_parse_attr_ulongest)
(gdb_xml_parse_attr_enum, gdb_xml_parse_ulongest): New prototypes.
(xml_get_required_attribute, xml_get_integer_attribute)
(xml_get_enum_value, make_cleanup_free_xml_parser): Delete prototypes.
* Makefile.in (xml_support_h, xml-support.o): Update.
* gdb.texinfo (Debugging Output): Document "set debug xml"
and "show debug xml".
2007-01-05 06:11:44 +08:00
|
|
|
extern gdb_xml_attribute_handler gdb_xml_parse_attr_enum;
|
|
|
|
|
|
|
|
/* Parse an integer string into a ULONGEST and return it, or call
|
|
|
|
gdb_xml_error if it could not be parsed. */
|
|
|
|
|
|
|
|
ULONGEST gdb_xml_parse_ulongest (struct gdb_xml_parser *parser,
|
|
|
|
const char *value);
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
|
2009-09-15 11:30:08 +08:00
|
|
|
/* Open FILENAME, read all its text into memory, close it, and return
|
Make target_read_alloc & al return vectors
This patch started by changing target_read_alloc_1 to return a
byte_vector, to avoid manual memory management (in target_read_alloc_1
and in the callers). To communicate failures to the callers, it
actually returns a gdb::optional<gdb::byte_vector>.
Adjusting target_read_stralloc was a bit more tricky, since it wants to
return a buffer of char, and not gdb_byte. Since you can't just cast a
gdb::byte_vector into a gdb::def_vector<char>, I made
target_read_alloc_1 templated, so both versions (that return vectors of
gdb_byte and char) are generated. Since target_read_stralloc now
returns a gdb::char_vector instead of a gdb::unique_xmalloc_ptr<char>, a
few callers need to be adjusted.
gdb/ChangeLog:
* common/byte-vector.h (char_vector): New type.
* target.h (target_read_alloc): Return
gdb::optional<byte_vector>.
(target_read_stralloc): Return gdb::optional<char_vector>.
(target_get_osdata): Return gdb::optional<char_vector>.
* target.c (target_read_alloc_1): Templatize. Replacement
manual memory management with vector.
(target_read_alloc): Change return type, adjust.
(target_read_stralloc): Change return type, adjust.
(target_get_osdata): Change return type, adjust.
* auxv.c (struct auxv_info) <length>: Remove.
<data>: Change type to gdb::optional<byte_vector>.
(auxv_inferior_data_cleanup): Free auxv_info with delete.
(get_auxv_inferior_data): Allocate auxv_info with new, adjust.
(target_auxv_search): Adjust.
(fprint_target_auxv): Adjust.
* avr-tdep.c (avr_io_reg_read_command): Adjust.
* linux-tdep.c (linux_spu_make_corefile_notes): Adjust.
(linux_make_corefile_notes): Adjust.
* osdata.c (get_osdata): Adjust.
* remote.c (remote_get_threads_with_qxfer): Adjust.
(remote_memory_map): Adjust.
(remote_traceframe_info): Adjust.
(btrace_read_config): Adjust.
(remote_read_btrace): Adjust.
(remote_pid_to_exec_file): Adjust.
* solib-aix.c (solib_aix_get_library_list): Adjust.
* solib-dsbt.c (decode_loadmap): Don't free buf.
(dsbt_get_initial_loadmaps): Adjust.
* solib-svr4.c (svr4_current_sos_via_xfer_libraries): Adjust.
* solib-target.c (solib_target_current_sos): Adjust.
* tracepoint.c (sdata_make_value): Adjust.
* xml-support.c (xinclude_start_include): Adjust.
(xml_fetch_content_from_file): Adjust.
* xml-support.h (xml_fetch_another): Change return type.
(xml_fetch_content_from_file): Change return type.
* xml-syscall.c (xml_init_syscalls_info): Adjust.
* xml-tdesc.c (file_read_description_xml): Adjust.
(fetch_available_features_from_target): Change return type.
(target_fetch_description_xml): Adjust.
(target_read_description_xml): Adjust.
2018-04-08 01:19:12 +08:00
|
|
|
the text. If something goes wrong, return an uninstantiated optional
|
|
|
|
and warn. */
|
2009-09-15 11:30:08 +08:00
|
|
|
|
Make target_read_alloc & al return vectors
This patch started by changing target_read_alloc_1 to return a
byte_vector, to avoid manual memory management (in target_read_alloc_1
and in the callers). To communicate failures to the callers, it
actually returns a gdb::optional<gdb::byte_vector>.
Adjusting target_read_stralloc was a bit more tricky, since it wants to
return a buffer of char, and not gdb_byte. Since you can't just cast a
gdb::byte_vector into a gdb::def_vector<char>, I made
target_read_alloc_1 templated, so both versions (that return vectors of
gdb_byte and char) are generated. Since target_read_stralloc now
returns a gdb::char_vector instead of a gdb::unique_xmalloc_ptr<char>, a
few callers need to be adjusted.
gdb/ChangeLog:
* common/byte-vector.h (char_vector): New type.
* target.h (target_read_alloc): Return
gdb::optional<byte_vector>.
(target_read_stralloc): Return gdb::optional<char_vector>.
(target_get_osdata): Return gdb::optional<char_vector>.
* target.c (target_read_alloc_1): Templatize. Replacement
manual memory management with vector.
(target_read_alloc): Change return type, adjust.
(target_read_stralloc): Change return type, adjust.
(target_get_osdata): Change return type, adjust.
* auxv.c (struct auxv_info) <length>: Remove.
<data>: Change type to gdb::optional<byte_vector>.
(auxv_inferior_data_cleanup): Free auxv_info with delete.
(get_auxv_inferior_data): Allocate auxv_info with new, adjust.
(target_auxv_search): Adjust.
(fprint_target_auxv): Adjust.
* avr-tdep.c (avr_io_reg_read_command): Adjust.
* linux-tdep.c (linux_spu_make_corefile_notes): Adjust.
(linux_make_corefile_notes): Adjust.
* osdata.c (get_osdata): Adjust.
* remote.c (remote_get_threads_with_qxfer): Adjust.
(remote_memory_map): Adjust.
(remote_traceframe_info): Adjust.
(btrace_read_config): Adjust.
(remote_read_btrace): Adjust.
(remote_pid_to_exec_file): Adjust.
* solib-aix.c (solib_aix_get_library_list): Adjust.
* solib-dsbt.c (decode_loadmap): Don't free buf.
(dsbt_get_initial_loadmaps): Adjust.
* solib-svr4.c (svr4_current_sos_via_xfer_libraries): Adjust.
* solib-target.c (solib_target_current_sos): Adjust.
* tracepoint.c (sdata_make_value): Adjust.
* xml-support.c (xinclude_start_include): Adjust.
(xml_fetch_content_from_file): Adjust.
* xml-support.h (xml_fetch_another): Change return type.
(xml_fetch_content_from_file): Change return type.
* xml-syscall.c (xml_init_syscalls_info): Adjust.
* xml-tdesc.c (file_read_description_xml): Adjust.
(fetch_available_features_from_target): Change return type.
(target_fetch_description_xml): Adjust.
(target_read_description_xml): Adjust.
2018-04-08 01:19:12 +08:00
|
|
|
extern gdb::optional<gdb::char_vector> xml_fetch_content_from_file
|
2017-10-13 06:48:35 +08:00
|
|
|
(const char *filename, void *baton);
|
2009-09-15 11:30:08 +08:00
|
|
|
|
gdb/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
* Makefile.in (SFILES): Add memory-map.c and xml-support.c.
(memory_map_h, xml_support_h): New.
(target_h): Add vec_h dependency.
(COMMON_OBS): Add memory-map.o and xml-support.o.
(memory-map.o, xml-support.o): New rules.
(remote.o): Update.
* exceptions.h (enum errors): Add XML_PARSE_ERROR.
* infcmd.c (run_command_1, attach_command): Call target_pre_inferior.
* memattr.c (default_mem_attrib): Initialize blocksize.
(target_mem_region_list, mem_use_target)
(target_mem_regions_valid, mem_region_cmp, mem_region_init)
(require_user_regions, require_target_regions)
(invalidate_target_mem_regions): New.
(create_mem_region): Use mem_region_init.
(mem_clear): Move higher.
(lookup_mem_region): Use require_target_regions.
(mem_command): Implement "mem auto".
(mem_info_command): Handle target-supplied regions and flash
attributes.
(mem_enable_command, mem_disable_command, mem_delete_command): Use
require_user_regions.
(_initialize_mem): Mention "mem auto" in help.
* memattr.h (enum mem_access_mode): Add MEM_FLASH.
(struct mem_attrib): Add blocksize.
(invalidate_target_mem_regions, mem_region_init, mem_region_cmp): New
prototypes.
* remote.c: Include "memory-map.h".
(PACKET_qXfer_memory_map): New enum value.
(remote_protocol_features): Add qXfer:memory-map:read.
(remote_xfer_partial): Handle memory maps.
(remote_memory_map): New.
(init_remote_ops, init_remote_async_ops): Set to_memory_map.
(_initialize_remote): Register qXfer:memory-map:read.
* target.c (update_current_target): Mention to_memory_map.
(target_memory_map, target_pre_inferior): New.
(target_preopen): Call target_pre_inferior.
* target.h: Include "vec.h".
(enum target_object): Add TARGET_OBJECT_MEMORY_MAP.
(struct target_ops): Add to_memory_map.
(target_memory_map, target_pre_inferior): New prototypes.
* memory-map.c, memory-map.h, xml-support.c, xml-support.h: New files.
gdb/doc/
2006-09-21 Vladimir Prus <vladimir@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Memory Region Attributes): Mention target-supplied
memory regions and "mem auto".
2006-09-21 21:54:03 +08:00
|
|
|
#endif
|