* tracepoint.c (tfile_xfer_partial): If there's no traceframe
selected, don't try iterating over the traceframe's blocks.
(tfile_has_stack): If there's no traceframe selected, then there's
no stack.
(tfile_has_registers): If there's no traceframe selected, then
there's no registers.
gdb/testsuite/
* gdb.trace/tfile.exp: Test that with no traceframe selected,
there's no stack or registers.
* regcache.c (init_register_cache): Initialize
regcache->register_status.
(free_register_cache): Release regcache->register_status.
(regcache_cpy): Copy register_status.
(registers_to_string): Print 'x's for unavailable registers.
(supply_register): Mark the register's status valid or
unavailable, depending on whether a buffer was passed in or not.
(supply_register_zeroed): New.
(supply_regblock): Mark the registers' status valid or
unavailable, depending on whether a buffer was passed in or not.
* regcache.h (REG_UNAVAILABLE, REG_VALID): New defines.
(struct regcache): New `register_status' field.
(supply_register_zeroed): Declare.
* i387-fp.c (i387_xsave_to_cache): Zero out registers using
supply_register_zeroed, rather than passing a NULL buffer to
supply_register.
* tracepoint.c (fetch_traceframe_registers): Update comment.
* tracepoint.c (tfile_read): New.
(tfile_open): Use it.
(tfile_get_traceframe_address): Use it.
(tfile_trace_find): Use it.
(walk_blocks_callback_func): New typedef.
(match_blocktype): New function.
(traceframe_walk_blocks): New function.
(traceframe_find_block_type): New function.
(tfile_fetch_registers, tfile_xfer_partial)
(tfile_get_trace_state_variable_value): Use
traceframe_find_block_type and tfile_read.
PR/symtab 11766:
* gdb/objfiles.h (struct objfile) <addr_low>: New field.
* gdb/solib.c (solib_read_symbols): Check for addr_low in
equality test for objfile, initialize addr_low if needed.
2011-01-25 Ken Werner <ken.werner@de.ibm.com>
* gdb.opencl/convs_casts.cl: Move program scope variables into the
OpenCL kernel function. Add a comment as marker. Add address space
qualifiers for the remaining program scope variables.
* gdb.opencl/datatypes.cl: Likewise.
* gdb.opencl/operators.cl: Likewise.
* gdb.opencl/vec_comps.cl: Likewise.
* gdb.opencl/convs_casts.exp: Replace gdb_test_multiple by gdb_test.
Add breakpoint at the marker comment.
* gdb.opencl/datatypes.exp: Likewise.
* gdb.opencl/operators.exp: Likewise.
* gdb.opencl/vec_comps.exp: Likewise.
boolean. Make sure to always pass a value that matches the
contents buffer to callees. Preserve `address' for following
iterations.
* value.c (value_contents_for_printing_const): New.
(value_address): Constify value argument.
* value.h (value_contents_for_printing_const): Declare.
(value_address): Constify value argument.
(init_regcache_descr): Remove sizeof_raw_register_valid_p
overallocate hack.
(regcache_xmalloc): Rename to ...
(regcache_xmalloc_1): ... this. Add `readonly_p' parameter.
Allocate the regcache type accordingly.
(regcache_xmalloc): New as wrapper around regcache_xmalloc_1.
(regcache_xfree): Asser the source is also readonly. Copy sizeof
cooked registers, not raw.
(regcache_dup_no_passthrough): Delete.
(get_thread_arch_regcache): Use regcache_xmalloc_1.
* h8300-tdep.c (h8300_push_dummy_call): Tweak comment to not
mention obsolete write_register_bytes.
* regcache.h (regcache_dup_no_passthrough): Delete declaration.
* remote-fileio.c: Include target.h.
(remote_fileio_write_bytes): Delete.
(remote_fileio_func_open, remote_fileio_func_write)
(remote_fileio_func_rename, remote_fileio_func_unlink): Use
target_read_memory.
(remote_fileio_func_stat): Use target_read_memory and
target_write_memory.
(remote_fileio_func_gettimeofday): Use target_write_memory.
(remote_fileio_func_system): Use target_read_memory.
* remote.c (remote_write_bytes): Make it static.
(remote_read_bytes): Don't handle partial reads here.
* remote.h (remote_read_bytes): Delete declaration.
* server.h (decode_xfer_write): Change prototype.
* remote-utils.c (decode_xfer_write): Remove `annex' parameter,
and don't extract the annex here.
* server.c (decode_xfer_read): Remove `annex' parameter,
and don't extract the annex here.
(decode_xfer): New.
(struct qxfer): New.
(handle_qxfer_auxv, handle_qxfer_features, handle_qxfer_libraries)
(handle_qxfer_osdata, handle_qxfer_siginfo, handle_qxfer_spu)
(handle_qxfer_statictrace): New functions, abstracted out from
handle_query, and made to use the struct qxfer interface.
(handle_threads_qxfer_proper): Rename to ...
(handle_qxfer_threads_proper): ... this.
(handle_threads_qxfer): Rename to ...
(handle_qxfer_threads): ... this. Adjust.
(qxfer_packets): New array.
(handle_qxfer): New function.
(handle_query): Use handle_qxfer.
(Plugin_manager::claim_file): Set any_claimed_.
(Plugin_manager::save_archive): New function.
(Plugin_manager::save_input_group): New function.
(Plugin_manager::all_symbols_read): Create Plugin_rescan task if
necessary.
(Plugin_manager::new_undefined_symbol): New function.
(Plugin_manager::rescan): New function.
(Plugin_manager::rescannable_defines): New function.
(Plugin_manager::add_input_file): Set any_added_.
* plugin.h (class Plugin_manager): define new fields rescannable_,
undefined_symbols_, any_claimed_, and any_added_. Declare
Plugin_rescan as friend. Declare new functions.
(Plugin_manager::Rescannable): Define type.
(Plugin_manager::Rescannable_list): Define type.
(Plugin_manager::Undefined_symbol_list): Define type.
(Plugin_manager::Plugin_manager): Initialize new fields.
* archive.cc (Archive::defines_symbol): New function.
(Add_archive_symbols::run): Pass archive to plugins if any.
* archive.h (class Archive): Declare defines_symbol.
* readsyms.cc (Input_group::~Input_group): New function.
(Finish_group::run): Pass input_group to plugins if any.
* readsyms.h (class Input_group): Declare destructor.
* symtab.cc (add_from_object): Pass undefined symbol to plugins if
any.