* dwarf2expr.h (struct dwarf_value_location): Use ULONGEST as type
of stack values.
(struct dwarf_expr_piece): Rename "expr" member to "mem". Add new
"value" member.
(dwarf_expr_push): Change input type to ULONGEST.
(dwarf_expr_fetch): Change return type to ULONGEST.
(dwarf_expr_fetch_address): Add prototype.
(dwarf2_read_address): Remove prototype.
* dwarf2expr.c (dwarf_expr_push): Use ULONGEST as type of stack values.
Truncate stack values to ctx->addr_size bytes.
(dwarf_expr_fetch): Change return value to ULONGEST.
(dwarf_expr_fetch_address): New function.
(add_piece): Use dwarf_expr_fetch_address instead of dwarf_expr_fetch
when appropriate. Update for struct dwarf_expr_piece changes.
(dwarf2_read_address): Remove.
(unsigned_address_type): Remove.
(signed_address_type): Remove.
(execute_stack_op): Use dwarf_expr_fetch_address instead of
dwarf_expr_fetch when appropriate. Use ULONGEST as type of stack
values. Perform operations on ULONGEST instead of on GDB values,
sign-extending from ctx->addr_size bytes as needed. Read DW_OP_addr
values and DW_OP_deref results as unsigned integers.
* dwarf2loc.c (read_pieced_value): Update for struct dwarf_expr_piece
changes.
(write_pieced_value): Likewise.
(dwarf2_evaluate_loc_desc): Use dwarf_expr_fetch_address instead of
dwarf_expr_fetch when appropriate.
(compile_dwarf_to_ax): Read DW_OP_addr values as unsigned integers.
* dwarf2-frame.c (execute_stack_op): Use dwarf_expr_fetch_address
instead of dwarf_expr_fetch when appropriate.
testsuite/ChangeLog:
* gdb.cell/dwarfaddr.exp: New file.
* gdb.cell/dwarfaddr.S: New file.
Python scripts to be used by GDB can be stored in that directory,
and will be automatically found by the interpreter when importing them.
This patch also sets up <gdb_pythondir>/gdb as the directory where gdb
submodules can be stored. For now, there is nothing there, but it can
now be added easily without further code changes.
gdb/ChangeLog:
2010-06-24 Joel Brobecker <brobecker@adacore.com>
* python/python.c (_initialize_python): Add new "constant"
PYTHONDIR in gdb module. Insert this path at the head of
sys.path. Set gdb.__path__ to gdb.PYTHONDIR + '/gdb' and
exec its __init__.py script if it exists in that directory.
* infrun.c (handle_inferior_event): Handle presence of single-step
breakpoints for TARGET_WAITKIND_FORKED and TARGET_WAITKIND_VFORKED.
Cancel single-step breakpoints for TARGET_WAITKIND_EXITED,
TARGET_WAITKIND_SIGNALED, and TARGET_WAITKIND_EXECD.
* breakpoint.c (detach_single_step_breakpoints): New function.
(detach_breakpoints): Call it.
(cancel_single_step_breakpoints): New function.
* breakpoint.h (cancel_single_step_breakpoints): Add prototype.
* spu-tdep.c (spu_memory_remove_breakpoint): New function.
(spu_gdbarch_init): Install it.
testsuite/ChangeLog:
* gdb.cell/fork.exp: New file.
* gdb.cell/fork.c: Likewise.
* gdb.cell/fork-spu.c: Likewise.
* i386-tdep.c (i386_record_lea_modrm): Change warning to query.
(i386_process_record): Ditto.
* record.c (record_memory_query): New variable.
(_initialize_record): New command "set record memory-query".
* record.h (record_memory_query): New extern.
2010-06-22 Hui Zhu <teawater@gmail.com>
* gdb.texinfo: (Process Record and Replay): Add documentation
for command "set record memory-query".
* i386-tdep.c (i386_displaced_step_copy_insn): New function.
(i386_syscall_p): Change type of lengthp to int.
(i386_displaced_step_fixup): Handle kernels that run one past a
syscall insn.
* i386-linux-tdep.c (i386_linux_init_abi): Use
i386_displaced_step_copy_insn instead of
simple_displaced_step_copy_insn.
* p-typeprint.c (pascal_type_print_base): Use TYPE_ERROR_NAME.
* m2-valprint.c (m2_val_print): Use TYPE_ERROR_NAME.
* gdbtypes.h (TYPE_ERROR_NAME): New macro.
* f-valprint.c (f_val_print): Use TYPE_ERROR_NAME.
* f-typeprint.c (f_type_print_base): Use TYPE_ERROR_NAME.
* dwarf2read.c (tag_type_to_type): Create a new error type on
failure.
* c-valprint.c (c_val_print): Use TYPE_ERROR_NAME.
* c-typeprint.c (c_type_print_base): Use TYPE_ERROR_NAME.
to base-address-selection entry base addresses. Read addresses
(and offsets) as signed/unsigned integers, depending on the
BFD's sign_extend_vma flag. Do not call dwarf2_read_address.
(loclist_describe_location): Likewise.
(disassemble_dwarf_expression): Read DW_OP_addr operand as
unsigned integer. Do not call dwarf2_read_address.
(locexpr_describe_location): Likewise for DW_OP_GNU_push_tls_address.
* spu-multiarch.c (spu_xfer_partial): Wrap around local store
limit on local store memory accesses.
* spu-linux-nat.c (spu_xfer_partial): Likewise.
* spu-tdep.c (spu_lslr): Remove.
(spu_pointer_to_address): Do not truncate addresses.
(spu_integer_to_address): Likewise.
(spu_overlay_new_objfile): Use SPU_OVERLAY_LMA.
* spu-tdep.h: Add comments.
(SPUADDR_SPU): Respect SPU_OVERLAY_LMA bit.
(SPU_OVERLAY_LMA): Define.
gdbserver/ChangeLog:
* spu-low.c (spu_read_memory): Wrap around local store limit.
(spu_write_memory): Likewise.
testsuite/ChangeLog:
* gdb.arch/spu-ls.exp: New file.
* gdb.arch/spu-ls.c: Likewise.
* osdata.c (get_osdata): Warn separately if target does not report
type list.
(info_osdata_command): Allow empty type, report error if target
does not return available types of OS data.
* linux-nat.c (linux_nat_xfer_osdata): Report list of OS data
types if no annex supplied.
* gdb.texinfo (Operating System Auxiliary Information): Describe
"info os" when no arguments given.
Really a tiny insignificant detail that just happened to catch my attention.
Fixed thusly.
2010-06-17 Joel Brobecker <brobecker@adacore.com>
* dwarf2read.c (psymtabs_addrmap_cleanup): Add empty line after
last local variable declaration. No real code change.
2010-06-16 Sergio Durigan Junior <sergiodj@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
* breakpoint.c: Include parser-defs.h.
(watchpoint_exp_is_const): New function.
(watch_command_1): Call watchpoint_exp_is_const to check
if the expression is constant.
gdb/doc/ChangeLog:
2010-06-16 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.texinfo: Include information about the correct use
of addresses in the `watch' command.
gdb/testsuite/ChangeLog:
2010-06-16 Jan Kratochvil <jan.kratochvil@redhat.com>
Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.base/watch-notconst.c: New file.
* gdb.base/watch-notconst.S: New file.
* gdb.base/watch-notconst2.c: New file.
* gdb.base/watch-notconst2.S: New file.
* gdb.base/watch-notconst.exp: New file.
* gdb.base/watchpoint.c (global_ptr_ptr): New variable.
(func4): Add operations on `global_ptr_ptr'.
* gdb.base/watchpoint.exp (test_constant_watchpoint): New
routine to test watchpoints created with a constant expression.
(test_inaccessible_watchpoint): Include tests for watchpoints
created with a constant expression.
Add per-operation permission flags.
* target.h (struct target_ops): New method to_set_permissions.
(target_set_permissions): New macro.
(target_insert_breakpoint): Change macro to function.
(target_remove_breakpoint): Ditto.
(target_stop): Ditto.
(may_write_registers): Declare.
(may_write_memory): Declare.
(may_insert_breakpoints): Declare.
(may_insert_tracepoints): Declare.
(may_insert_fast_tracepoints): Declare.
(may_stop): Declare.
* target.c (may_write_registers, may_write_registers_1): New globals.
(may_write_memory, may_write_memory_1): New globals.
(may_insert_breakpoints, may_insert_breakpoints_1): New globals.
(may_insert_tracepoints, may_insert_tracepoints_1): New globals.
(may_insert_fast_tracepoints, may_insert_fast_tracepoints_1): New
globals.
(may_stop, may_stop_1): New global.
(target_xfer_partial): Test for write permission.
(target_store_registers): Ditto.
(target_insert_breakpoint): New function.
(target_remove_breakpoint): New function.
(target_stop): New function.
(_initialize_targets): Add new set/show variables.
(set_write_memory_permission): New function.
(update_target_permissions): New function.
(set_target_permissions): New function.
(update_current_target): Default to_set_permissions.
(_initialize_targets): Use new globals and setter function.
* tracepoint.c (start_tracing): Test for permission.
* inferior.h (update_observer_mode): Declare.
* infrun.c (non_stop_1): Define earlier.
(observer_mode, observer_mode_1): New globals.
(set_observer_mode, show_observer_mode): New functions.
(update_observer_mode): New function.
(_initialize_infrun): Define "set observer" command.
* remote.c (PACKET_QAllow): New optional packet.
(remote_protocol_features): Add QAllow.
(remote_set_permissions): New function.
(remote_start_remote): Call it.
(init_remote_ops): Add it to target vector.
(_initialize_remote): Add config command for QAllow.
* gdb.texinfo (Observer Mode): New section.
(General Query Packets): Document QAllow.
* gdb.base/permissions.exp: New file.
* breakpoint.c (breakpoint_restore_shadows): New OWNER comment.
(should_be_inserted): Return zero also on NULL OWNER.
(breakpoint_program_space_exit): New OWNER comment.
(insert_breakpoint_locations): Extend comment for OWNER.
(remove_breakpoint_1, remove_breakpoint): Assert on OWNER.
(breakpoint_init_inferior, breakpoint_here_p, breakpoint_thread_match):
New OWNER comment.
(print_it_typical): Return PRINT_UNKNOWN on NULL OWNER.
(watchpoint_check): New assert on BREAKPOINT_AT and OWNER.
(bpstat_check_location): New assert on OWNER.
(bpstat_check_watchpoint, bpstat_check_breakpoint_conditions): Move BL
and B initializations to the code block. New assert on them.
(print_one_breakpoint_location): New OWNER comment.
(watchpoint_locations_match): Assert on OWNER.
(breakpoint_locations_match): Move HW_POINT1 and HW_POINT2
initializations to the code block. New assert on OWNER.
(set_breakpoint_location_function): New assert on OWNER.
(disable_breakpoints_in_shlibs, disable_breakpoints_in_unloaded_shlib)
(bp_location_compare, update_global_location_list)
(update_global_location_list): New OWNER comment.
gdb/testsuite/
* gdb.base/moribund-step.exp: New.
* dwarf2loc.c (struct dwarf_expr_baton) Replace objfile by per_cu.
(dwarf_expr_tls_address): Use per_cu instead of objfile.
(dwarf2_evaluate_loc_desc): Drop initialization of BATON.OBJFILE.
Initialize new BATON.PER_CU. Adjust CTX->GDBARCH initialization for
this change.
(struct needs_frame_baton): New field per_cu.
(dwarf2_loc_desc_needs_frame): Initialize new BATON.PER_CU.
* dwarf2read.c (struct dwarf2_per_cu_data) <cu>: Extend the comment.
2010-06-07 Sami Wagiaalla <swagiaal@redhat.com>
* cp-support.c (make_symbol_overload_list_namespace): Only search
static and global blocks.
(make_symbol_overload_list_block): New function.
(make_symbol_overload_list): Separate namespace search from block
search.
(make_symbol_overload_list_qualified): Use
make_symbol_overload_list_block.
2010-06-07 Sami Wagiaalla <swagiaal@redhat.com>
* value.h: Created oload_search_type enum.
(find_overload_match): Use oload_search_type enum.
* valops.c (find_overload_match): Support combined member and
non-member search.
* eval.c (evaluate_subexp_standard): Calls to
find_overload_match now use oload_search_type enum.
(oload_method_static): Verify index is a proper value.
* valarith.c (value_user_defined_cpp_op): Search for and handle
both member and non-member operators.
(value_user_defined_cpp_op): New function.
(value_user_defined_op): New function.
(value_x_unop): Use value_user_defined_op.
(value_x_binop): Ditto.
* cp-support.c (make_symbol_overload_list_using): Added block
iteration.
Add check for namespace aliases and imported declarations.
2010-06-07 Sami Wagiaalla <swagiaal@redhat.com>
* gdb.cp/koenig.exp: Test for ADL operators.
* gdb.cp/koenig.cc: Added ADL operators.
* gdb.cp/operator.exp: New test.
* gdb.cp/operator.cc: New test.
Clear stale specific bp_location from former whole breakpoint.
* breakpoint.c (delete_breakpoint): Move the stale referencing clear
code ...
(free_bp_location): ... here. Rename there the called function to
bpstat_remove_bp_location_callback.
(bpstat_remove_breakpoint_callback): Rename to ...
(bpstat_remove_bp_location_callback): ... here, change DATA resolution
to struct bp_location. Change the called function to
bpstat_remove_bp_location. Create new declaration for the function.
(bpstat_remove_breakpoint): Rename to ...
(bpstat_remove_bp_location): ..., change the parameter to loc, adjust
code for the new parameter type.
Fix duplicate types for single DIE.
* dwarf2read.c (read_structure_type): Move set_descriptive_type after
set_die_type.
(read_array_type): Remove type initialization. Recheck get_die_type
after initial die_type. Move set_die_type before set_descriptive_type.
(read_set_type): New variable domain_type. Recheck get_die_type after
initial die_type. Move attr initialization later.
(read_tag_pointer_type, read_tag_reference_type): New variable
target_type. Recheck get_die_type after initial die_type.
(read_tag_ptr_to_member_type): Recheck get_die_type after initial
die_type and die_containing_type.
(read_tag_const_type, read_tag_volatile_type, read_subroutine_type):
Recheck get_die_type after initial die_type.
(read_subrange_type): Recheck get_die_type after initial die_type.
Move set_die_type before set_descriptive_type.
(set_die_type): Extend the function comment. Call complaint if DIE has
some type already set.