aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote.c
AgeCommit message (Collapse)AuthorFilesLines
2001-11-19Use ISO C long strings.Andrew Cagney1-9/+8
2001-11-15* remote.c (struct packet_reg): Declare.Andrew Cagney1-59/+121
(struct remote_state): Add fields sizeof_g_packet and g_packet. (init_remote_state): Initialize sizeof_g_packet and g_packet. (free_remote_state): Free g_packet. (packet_reg_from_pnum, packet_reg_by_regnum): New functions. (remote_wait): Use above instead of gdbarch methods REGISTER_RAW_SIZE and REGISTER_BYTES. (remote_async_wait): Ditto. (remote_fetch_registers, remote_store_registers): Ditto. (store_register_using_P): Ditto.
2001-11-15Really zap tty_input from multi-arch swap.Andrew Cagney1-1/+0
2001-11-15* TODO (register_buffer): Delete.Andrew Cagney1-8/+18
* regcache.c (register_buffer): Make static. (regcache_collect): New function. * regcache.h (register_buffer): Delete declaration. (regcache_collect): Declare. * remote.c (store_register_using_P): Rewrite using regcache_collect. (remote_store_registers): Ditto. * go32-nat.c (store_register): Ditto.
2001-11-15Move global state variables to ``struct remote_state''.Andrew Cagney1-147/+205
2001-11-15* remote.c: Include "gdb_assert.h".Andrew Cagney1-6/+5
(tty_input): Wire buffer to 400 bytes. (readsocket): Check tty_input doesn't overflow. (build_remote_gdbarch_data, _initialize_remote): Don't multi-arch tty_input.
2001-10-21Add explicit #include of "value.h".Andrew Cagney1-0/+1
2001-09-30* cli/cli-decode.c (add_set_boolean_cmd): Define.Andrew Cagney1-4/+3
* cli/cli-decode.h (add_set_boolean_cmd): Declare. * command.h (add_set_boolean_cmd): Ditto. * remote.c (_initialize_remote): Use add_set_boolean_cmd for "set remotebreak"
2001-08-102001-08-10 Orjan Friberg <orjanf@axis.com>Orjan Friberg1-1/+1
* remote.c (read_frame): Correct off-by-one error in condition.
2001-07-17 * remote.c (init_remote_ops, init_remote_cisco_ops,Nicholas Duffek1-3/+5
init_remote_async_ops): Set to_pid_to_str and to_extra_thread_info correctly and in the same order as declared in target.h.
2001-07-17Revert previous, included more than intended.Andrew Cagney1-19/+9
2001-07-16 * remote.c (init_remote_ops, init_remote_cisco_ops,Nicholas Duffek1-9/+19
init_remote_async_ops): Set to_pid_to_str and to_extra_thread_info correctly and in the same order as declared in target.h.
2001-07-15* serial.h (SERIAL_ASYNC): Delete.Andrew Cagney1-34/+34
(DEPRECATED_SERIAL_FD): Delete. (SERIAL_DEBUG): Delete. (SERIAL_DEBUG_P): Delete. (SERIAL_DRAIN_OUTPUT): Delete. (SERIAL_FLUSH_OUTPUT): Delete. (SERIAL_FLUSH_INPUT): Delete. (SERIAL_SEND_BREAK): Delete. (SERIAL_RAW): Delete. (SERIAL_GET_TTY_STATE): Delete. (SERIAL_SET_TTY_STATE): Delete. (SERIAL_PRINT_TTY_STATE): Delete. (SERIAL_NOFLUSH_SET_TTY_STATE): Delete. (SERIAL_SETBAUDRATE): Delete. (SERIAL_SETSTOPBITS): Delete. (SERIAL_CAN_ASYNC_P): Delete. (SERIAL_IS_ASYNC_P): Delete. (SERIAL_UN_FDOPEN): Delete. (SERIAL_READCHAR): Delete. (SERIAL_CLOSE): Delete. (SERIAL_FDOPEN): Delete. (SERIAL_OPEN): Delete.
2001-07-11s/typedef serial_t/struct serial */Andrew Cagney1-2/+2
2001-06-142001-06-14 Michael Snyder <msnyder@redhat.com>Michael Snyder1-5/+94
* remote.c (show_remote_protocol_qSymbol_packet_cmd, set_remote_protocol_qSymbol_packet_cmd): New functions. (init_all_packet_configs, show_remote_cmd): Add qSymbol packet. (remote_check_symbols): New function. Implement qSymbol packet, allowing target to request symbol lookup service from gdb. (remote_open_1, remote_async_open_1): Call remote_check_symbols, allowing symbol lookup from exec_bfd on connection to target. (remote_new_objfile): New function. Catch new objfile notifications from shared library module, and call remote_check_symbols. (_initialize_remote): Hook remote_new_objfile into the shared library notification chain. Add "set remote symbol-lookup" command.
2001-05-252001-05-25 Michael Snyder <msnyder@redhat.com>Michael Snyder1-0/+1
* remote.c (remote_write_bytes): Update 'p' packet pointer.
2001-05-212001-05-21 Michael Snyder <msnyder@redhat.com>Michael Snyder1-2/+4
* remote.c (remote_async_wait): Added new variable fieldsize. Add fieldsize (return value of hex2bin) to string pointer p.
2001-05-162001-05-15 John S Kallal <jskallal@home.com>Michael Snyder1-2/+4
* remote.c (remote_wait): Added new variable fieldsize. Add fieldsize (return value of hex2bin) to string pointer p.
2001-05-142001-05-14 Michael Snyder <msnyder@redhat.com>Michael Snyder1-9/+7
* remote.c (hex2bin): Make first argument const. Require explicit count, don't accept null-terminated str. (remote_resume, remote_async_resume): White space fix-up.
2001-05-142001-05-14 Michael Snyder <msnyder@redhat.com>Michael Snyder1-2/+1
* remote.c (remote_write_bytes): Set nr_bytes to return value of bin2hex.
2001-05-14* remote.c (remote_write_bytes): Set nr_bytes before returning it.Andrew Cagney1-0/+1
* solib.h (no_shared_libraries): Declare.
2001-05-102001-05-10 Michael Snyder <msnyder@redhat.com>Michael Snyder1-2/+16
* remote.c (remote_open_1): Call no_shared_libraries, so that symbols for shared libraries can be reloaded per session. (remote_async_open_1): Ditto.
2001-05-102001-05-10 Michael Snyder <msnyder@redhat.com>Michael Snyder1-60/+60
* remote.c (bin2hex, hex2bin): New functions. Factor out these two conversions which are coded for repeatedly in this module. (remote_threads_extra_info, remote_wait, remote_async_wait, store_register_using_P, remote_store_registers, remote_write_bytes, remote_read_bytes, remote_rcmd): Use bin2hex and hex2bin instead of coding the conversions inline. (fromhex): Not exported, change from extern to static.
2001-05-04Phase 1 of the ptid_t changes.Kevin Buettner1-48/+56
2001-04-262001-04-26 Michael Snyder <msnyder@redhat.com>Michael Snyder1-0/+13
* target.c (normal_pid_to_str): Get rid of an ancient hack. * remote.c (remote_pid_to_str): New function for remote target.
2001-04-172001-04-17 Michael Snyder <msnyder@redhat.com>Michael Snyder1-2/+22
* remote.c (remote_open_1): On opening the remote target, activate the solib_create_inferior_hook, so that it can detect when the target loads shared libraries. (remote_async_open_1): Ditto.
2001-04-03* remote.c (remote_protocol_e, remote_protocol_E): Define.J.T. Conklin1-2/+168
(set_remote_protocol_e_packet_cmd) (set_remote_protocol_E_packet_cmd) (show_remote_protocol_e_packet_command) (show_remote_protocol_E_packet_command): New functions. (init_all_packet_configs): Initialize remote_protocol_e and remote_protocol_E. (remote_resume, remote_async_resume): Support e/E command packets. (show_remote_cmd): Show state of remote_protocol_e and remote_protocol_E. (_initialize_remote): Add "set remote step-over-range-packet" and "set remote step-over-range-w-signal-packet" to CLI. -------------------------------------------------------------------
2001-03-27* arch-utils.c (#include "gdbthread.h"): Removed.J.T. Conklin1-2/+1
(#include "symfile.h"): Removed. (XMALLOC): Removed unused macro. * breakpoint.c (tbreak_command): Removed local declaration. (awatch_command, do_enable_breakpoint, set_breakpoint_count): Remove duplicate declarations. (bpstat_should_step, bpstat_have_active_hw_watchpoints) (remove_solib_event_breakpoints): Fix indentation botch. * c-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * ch-exp.c (ch_terminal_match_float_literal, parse_expr) (parse_primval, parse_untyped_expr, parse_opt_untyped_expr): Removed duplicate declarations. * ch-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * corefile.c (#include "frame.h"): Removed (#include "symfile.h"): Removed. (#include "language.h"): Removed. * dbxread.c (#include "command.h"): Removed. * environ.c (#include "gdbcore.h"): Removed. * event-loop.c (#include "top.h"): Removed. * f-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. (#include "language.h"): Removed. (#include "typeprint.h"): Removed. (#include "frame.h"): Removed. * gdbtypes.h (print_type_scalar): Removed declaration. * infcmd.c (#include "completer.h"): Removed. * language.c (#include "frame.h"): Removed. * m2-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. (#include "language.h"): Removed. * m2-valprint.c (#include "valprint.h"): Removed. * p-typeprint.c (#include "command.h"): Removed. (#include "gdbcmd.h"): Removed. * p-valprint.c (#include "typeprint.h"): Removed. * parse.c (#include "linespec.h"): Removed. * regcache.c (#include "frame.h"): Removed. * remote.c (#include "frame.h"): Removed. (getpkt_sane): Make static. * source.c (#include "completer.h"): Removed. * stack.c (#include "symfile.h"): Removed. (#include "objfiles.h"): Removed. * symfile.c (#include "completer.h"): Removed. * tracepoint.c (#include "completer.h"): Removed. * values.c (#include "frame.h"): Removed. * varobj.c (#include "valprint.h"): Removed. * wrapper.c (#include "frame.h"): Removed. * memattr.c (create_mem_region): Removed unused variable. * remote-nrom.c: Removed spurious semicolon after init_nrom_ops. -------------------------------------------------------------------
2001-03-19* remote.c (remote_cisco_section_offsets): Do not cast result fromAndrew Cagney1-4/+3
bfd_get_section_name. (compare_sections_command): Ditto. (remote_cisco_section_offsets): Make ``p'' a const pointer. (compare_sections_command): Ditto for ``sectname''.
2001-03-06Update/correct copyright notices.Kevin Buettner1-1/+2
2001-03-01Create new file regcache.h. Update all uses.Andrew Cagney1-0/+1
2001-02-162001-02-16 Michael Snyder <msnyder@mvstp600e.cygnus.com>Michael Snyder1-1/+1
* remote.c (build_remote_gdbarch_data): Use new TARGET_ADDR_BIT instead of TARGET_PTR_BIT (to support Harvard architectures).
2001-02-08Add __FILE__ and __LINE__ parameter to internal_error() /Andrew Cagney1-14/+22
internal_verror().
2001-02-062001-02-06 Michael Snyder <msnyder@makita.cygnus.com>Michael Snyder1-2/+2
Submitted by Paul Hilfinger (hilfingr@gnat.com) and Andrei Petrov (and@genesyslab.com). * findvar.c: Buffers of size MAX_REGISTER_RAW_SIZE or REGISTER_BYTES must be allocated dynamically, since these are no longer constants. * infcmd.c: Ditto. * regcache.c: Ditto. * remote.c: Ditto. * sol-thread.c: Ditto. * valops.c: Ditto. * config/sparc/sun4sol2.mh (MH_CFLAGS): Add -I/usr/include/v9, as a work-around for a missing Sun header file in solaris for sparc64.
2001-02-02* monitor.c (#include "gdb_wait.h"): Removed.J.T. Conklin1-1/+0
* ocd.c: Likewise. * ppc-bdm.c: Likewise. * remote-adapt.c: Likewise. * remote-array.c: Likewise. * remote-bug.c: Likewise. * remote-e7000.c: Likewise. * remote-eb.c: Likewise. * remote-es.c: Likewise. * remote-mips.c: Likewise. * remote-mm.c: Likewise. * remote-nindy.c: Likewise. * remote-os9k.c: Likewise. * remote-rdi.c: Likewise. * remote-rdp.c: Likewise. * remote-sds.c: Likewise. * remote-sim.c: Likewise. * remote-st.c: Likewise. * remote-udi.c: Likewise. * remote-vx.c: Likewise. * remote-vx29k.c: Likewise. * remote-vx68.c: Likewise. * remote-vx960.c: Likewise. * remote-vxmips.c: Likewise. * remote-vxsparc.c: Likewise. * remote.c: Likewise. * ser-pipe.c: Likewise. * ser-unix.c: Likewise. * Makefile.in: Updated dependencies. -------------------------------------------------------------------
2001-01-23* exec.c (xfer_memory): Add attrib argument.J.T. Conklin1-2/+5
* infptrace.c (child_xfer_memory): Likewise. * monitor.c (monitor_xfer_memory): Likewise. * remote-adapt.c (adapt_xfer_inferior_memory): Likewise. * remote-array.c (array_xfer_memory): Likewise. * remote-bug.c (bug_xfer_memory): Likewise. * remote-e7000.c (e7000_xfer_inferior_memory): Likewise. * remote-eb.c (eb_xfer_inferior_memory): Likewise. * remote-es.c (es1800_xfer_inferior_memory): Likewise. * remote-mips.c (mips_xfer_memory): Likewise. * remote-mm.c (mm_xfer_inferior_memory): Likewise. * remote-nindy.c (nindy_xfer_inferior_memory): Likewise. * remote-os9k.c (rombug_xfer_inferior_memory): Likewise. * remote-rdi.c (arm_rdi_xfer_memory): Likewise. * remote-rdp.c (remote_rdp_xfer_inferior_memory): Likewise. * remote-sds.c (sds_xfer_memory): Likewise. * remote-sim.c (gdbsim_xfer_inferior_memory): Likewise. * remote-st.c (st2000_xfer_inferior_memory): Likewise. * remote-udi.c (udi_xfer_inferior_memory): Likewise. * remote-vx.c (vx_xfer_memory): Likewise. * remote.c (remote_xfer_memory): Likewise. * target.c (debug_to_xfer_memory, do_xfer_memory): Likewise. * target.h (child_xfer_memory, do_xfer_memory, xfer_memory): Likewise. * target.h (#include "memattr.h"): Added. (target_ops.to_xfer_memory): Add attrib argument. * wince.c (_initialize_inftarg): Removed call to set_dcache_state. * dcache.h (set_dcache_state): Removed declaration. * dcache.c (set_dcache_state): Removed definition * dcache.c: Update module comment, as dcache is now enabled and disabled with memory region attributes instead of by the global variable "remotecache". Add comment describing the interaction between dcache and memory region attributes. (dcache_xfer_memory): Add comment describing benefits of moving cache writeback to a higher level. (dcache_struct): Removed cache_has_stuff field. This was used to record whether the cache had been accessed in order to invalidate it when it was disabled. However, this is not needed because the cache is write through and the code that enables, disables, and deletes memory regions invalidate the cache. Add comment which suggests that we could be more selective and only invalidate those cache lines containing data from those memory regions. (dcache_invalidate): Updated. (dcache_xfer_memory): Updated. (dcache_alloc): Don't abort() if dcache_enabled_p is clear. (dcache_xfer_memory): Removed code that called do_xfer_memory() to perform a uncached transfer if dcache_enabled_p was clear. This function is now only called if caching is enabled for the memory region. (dcache_info): Always print cache info. * target.c (do_xfer_memory): Add attrib argument. (target_xfer_memory, target_xfer_memory_partial): Break transfer into chunks defined by memory regions, pass region attributes to do_xfer_memory(). * dcache.c (dcache_read_line, dcache_write_line): Likewise. * Makefile.in (SFILES): Add memattr.c. (COMMON_OBS): Add memattr.o. (dcache.o): Add target.h to dependencies. * memattr.c: New file. * memattr.h: Likewise.
2001-01-18From Mark Salter, fix hw-breakpoint packet format.Andrew Cagney1-2/+2
2001-01-09 * regcache.c (set_register_cached, register_buffer,Nicholas Duffek1-6/+8
real_register, pseudo_register fetch_register, store_register): New functions. (register_changed, read_relative_register_raw_bytes_for_frame, registers_changed, registers_fetched, read_register_bytes, read_register_gen, write_register_gen, read_register, read_signed_register, write_register, supply_register): Replace register_valid[] with register_cached() and set_register_cached(). (read_register_bytes, read_register_gen, write_register_gen, read_register, read_signed_register, write_register, supply_register): Replace registers[] with register_buffer(). (read_register_bytes, read_register_gen, read_register, read_signed_register): Call fetch_register(). (write_register_gen, write_register): Call real_register() and store_register(). (write_register_bytes): Call store_register(). * value.h (set_register_cached, register_buffer): Prototype. * remote.c (remote_fetch_registers): Allocate regs[] with a run-time size. Replace register_valid[] with set_register_cached(). (store_register_using_P, remote_store_registers): Replace registers[] with register_buffer().
2000-12-15Multi-arch REGISTER_BYTES_OK.Andrew Cagney1-3/+2
2000-12-15Replace free() with xfree().Kevin Buettner1-1/+1
2000-11-27* remote.c (remote_write_bytes): Add default case to switchAndrew Cagney1-2/+8
initializing ``todo''. Ditto for ``nr_bytes''. * top.c (catch_errors): Always initialize ``val''. * solib.c (info_sharedlibrary_command): Handle bfd_get_arch_size returning an unknown size. * gdbtypes.c (count_virtual_fns): Always initialize ``vfuncs''. * breakpoint.c (break_at_finish_at_depth_command_1): Initialise extra_args to NULL. (break_at_finish_command_1): Ditto.
2000-11-20Replace asprintf() / vasprintf() with xasprintf() xvasprintf().Andrew Cagney1-6/+6
2000-11-14Fix ``show remotewritesize'' was doing a set.Andrew Cagney1-1/+1
2000-11-03* TODO: Note abstraction layer violation where "ocd reset" commandJ.T. Conklin1-22/+8
must invalidate the dcache, and how this might be fixed. * monitor.c (#include "dcache.h"): Removed. (remote_dcache): Removed. (monitor_open): Removed code that created local dcache. (flush_monitor_dcache): Removed (unused function). (monitor_resume): Removed call to dcache_invd(). (monitor_load): Likewise. (monitor_xfer_memory): Changed to call monitor_write_memory(), monitor_write_memory_block(), and monitor_read_memory() instead of dcache_xfer_memory(). * monitor.h (flush_monitor_dcache): Removed (unused function). * ocd.c (#include "dcache.h"): Removed. (ocd_dcache): Removed. (ocd_open): Removed code that created local dcache. (ocd_resume): Removed call to dcache_invd(). (ocd_xfer_memory): Changed to call ocd_write_bytes() and ocd_read_bytes() instead of dcache_xfer_memory(). (bdm_reset_command): Invalidate target dcache. * remote-bug.c (bug_load): Remove call to dcache_invd(). (bug_resume): Likewise. (bug_settings): Remove dcache, readfunc, and writefunc fields from initializer. (bug_xfer_memory): Changed to call bug_read_memory() and bug_write_memory() instead of dcache_xfer_memory(). * remote-nindy.c (#include "dcache.h"): Removed. (nindy_dcache): Removed. (nindy_open): Removed code that created local dcache. (nindy_resume): Removed call to dcache_invd(). (nindy_load): Likewise. (nindy_xfer_inferior_memory): Changed to call ninMemPut() and ninMemGet() instead of dcache_xfer_memory(). * remote-sds.c (#include "dcache.h"): Removed. (sds_dcache): Removed. (sds_open): Removed code that created local dcache. (sds_resume): Removed call to dcache_invd(). (sds_xfer_memory): Changed to call sds_write_bytes() and sds_read_bytes() instead of dcache_xfer_memory(). * remote-utils.c (gr_open): Removed code that created local dcache. * remote-utils.h (#include "dcache.h"): Removed. (struct gr_settings): Removed dcache, readfunc, and writefunc fields. (gr_get_dcache, gr_set_dcache): Removed macro definitions. * remote.c (#include "dcache.h"): Removed. (remote_dcache): Removed. (remote_open_1): Removed code that created local dcache. (remote_async_open_1): Likewise. (remote_resume): Removed call to dcache_invd(). (remote_async_resume): Likewise. (remote_xfer_memory): Changed to call remote_write_bytes() and remote_read_bytes() instead of dcache_xfer_memory(). * wince.c (#include "dcache.h"): Removed. (remote_dcache): Removed. (child_create_inferior): Removed code that created local dcache. (child_xfer_memory): Changed to call remote_write_bytes() and remote_read_bytes() instead of dcache_xfer_memory(). (child_resume): Removed call to dcache_invd(). * target.c (target_dcache): Added. (target_load): Invalidate target_dcache. (do_xfer_memory): New function. (target_xfer_memory): Reimplement in terms of dcache_xfer_memory(). (target_xfer_memory_partial): Likewise. (initialize_targets): Create target_dcache. * target.h (#include "dcache.h"): Added. (target_open): Invalidate target_dcache. (target_resume): Likewise. (do_xfer_memory): New declaration. * dcache.c (dcache_init): Removed reading and writing arguments. (dcache_struct): Removed read_memory and write_memory fields. (dcache_write_line): Call do_xfer_memory. (dcache_read_line): Likewise. (dcache_xfer_memory): Likewise. (dcache_invalidate): Renamed from dcache_invd. (dcache_init): Updated. (dcache_xfer_memory): Updated. * dcache.h (memxferfunc): Removed definition.
2000-10-23Corrected spelling errors in commentsDavid Anderson1-1/+1
2000-10-18Protoization.Kevin Buettner1-18/+6
2000-10-132000-10-13 Fernando Nasser <fnasser@cygnus.com>Fernando Nasser1-2/+8
* remote.c (putpkt_binary): Call read_frame, not getpkt. Log message. (read_frame): Do not call error() on communication error when reading checksum, but return failure instead and log message.
2000-09-01* dcache.c (dcache_info): Output a cache line's state vector so itJ.T. Conklin1-2/+2
lines up under the data vector. * dcache.c (dcache_read_line): New function. (dcache_peek_byte): Use it. (dcache_alloc): Return NULL if write of reclaimed cache line fails. (dcache_peek_byte, dcache_poke_byte): Return failure if dcache_alloc() returns a NULL data block pointer. (dcache_xfer_memory): Don't force writeback unless we were writing. * monitor.c (monitor_expect): Change places where immediate_quit is set to 1 or 0 to increments and decrements respectively. This allows such changes to nest properly. * ocd.c (ocd_start_remote): Likewise. * remote-adapt.c (expect): Likewise. * remote-array.c (expect): Likewise. * remote-eb.c (expect): Likewise. * remote-e7000.c (e7000_start_remote): Likewise. * remote-mips.c (mips_expect_timeout, mips_getstring): Likewise. * remote-nrom.c (expect): Likewise. * remote-os9k.c (expect): Likewise. * remote-sds.c (sds_start_remote): Likewise. * remote-st.c (expect): Likewise. * remote-utils.c (sr_expect): Likewise. * remote.c (remote_start_remote): Likewise. * tracepoint.c (read_actions): Likewise. * remote-mips.c (mips_getstring): Balance changes to immediate_quit.
2000-08-242000-08-20 Michael Chastain <chastain@redhat.com>Andrew Cagney1-2/+15
* remote.c (read_frame): Handle SERIAL_TIMEOUT while reading checksum.
2000-08-18* MAINTAINERS: Add myself as dcache.c maintainer.J.T. Conklin1-4/+4
* remote-nindy.c (nindy_load): Invalidate dcache. * dcache.c (dcache_invd): Renamed from dcache_flush. The term flush with respect to caches usually implies that data will be written to memory. (dcache_init, dcache_xfer_memory): Updated. * monitor.c (flush_monitor_dcache, monitor_resume, monitor_load): Updated. * ocd.c (ocd_open, ocd_resume, bdm_reset_command): Updated. * remote-bug.c (bug_load, bug_resume): Updated. * remote-nindy.c (nindy_open, nindy_resume): Updated. * remote-sds.c (sds_open, sds_resume): Updated. * remote-utils.c (gr_open): Updated. * remote.c (remote_open_1, remote_resume, remote_async_resume, remote_cisco_open): Updated. * wince.c (child_create_inferior, child_resume): Updated. * monitor.c (monitor_open): Free dcache before creating a new one. * dcache.c (dcache_free): New function. * dcache.h (dcache_free): New prototype. -------------------------------------------------------------------