* arm-tdep.c (arm_pc_is_thumb): Add heuristic that tries to get
the state right when single stepping.
(arm_get_next_pc_raw, thumb_get_next_pc_raw): New functions.
Get the next PC along with the instruction state.
(thumb_get_next_pc): Remove.
(arm_get_next_pc): Modified to use arm_get_next_pc_raw.
* remote.c (remote_download_tracepoint): Iterate over locations.
* tracepoint.c (validate_actionline): Ditto.
(encode_actions): Add location argument.
(trace_dump_command): Check all locations to see if stepping
frame.
(append_composite_type_field_aligned): Use the new function.
* gdbtypes.h (append_composite_type_field_raw): Declare.
* target-descriptions.c (struct tdesc_type_field): Add start and end.
(struct tdesc_type_flag): New type.
(struct tdesc_type): Add TDESC_TYPE_STRUCT and TDESC_TYPE_FLAGS to
kind. Add size to u.u. Add u.f for flags.
(tdesc_gdb_type): Handle TDESC_TYPE_STRUCT and TDESC_TYPE_FLAGS.
(tdesc_free_type): Likewise.
(tdesc_create_struct, tdesc_set_struct_size, tdesc_create_flags): New.
(tdesc_add_field): Handle TDESC_TYPE_STRUCT.
(tdesc_add_bitfield, tdesc_add_flag): New.
* target-descriptions.h (tdesc_create_struct, tdesc_set_struct_size)
(tdesc_create_flags, tdesc_add_bitfield, tdesc_add_flag): Declare.
* xml-tdesc.c (struct tdesc_parsing_data): Rename current_union to
current_type. Add current_type_size and current_type_is_flags.
(tdesc_start_union): Clear the new fields.
(tdesc_start_struct, tdesc_start_flags): New.
(tdesc_start_field): Handle struct fields, including bitfields.
(field_attributes): Make type optional. Add start and end.
(union_children): Rename to struct_union_children.
(union_attributes): Rename to struct_union_attributes. Add optional
size.
(flags_attributes): New.
(feature_children): Add struct and flags.
* features/gdb-target.dtd: Add flags and struct to features.
Make field type optional. Add field start and end.
doc/
* gdb.texinfo (Types): Describe <struct> and <flags>.
testsuite/
* gdb.xml/extra-regs.xml: Add struct1, struct2, and flags
types. Add structreg, bitfields, and flags registers.
* gdb.xml/tdesc-regs.exp: Test structreg and bitfields
registers.
cygwin_conv_path API rather than the deprecated
cygwin_conv_to_full_posix_path.
* windows-nat.c:
(GetModuleFileNameExA): Undefine for Cygwin.
(GetModuleFileNameExW): Define for Cygwin.
(get_module_name): Change size of pathbuf to PATH_MAX for Cygwin.
Call GetModuleFileNameExW and convert path to POSIX using
cygwin_conv_path.
(windows_make_so): Always define p. Drop unused variable m.
Don't use Win32 functions to check file existance, rather use
access on Cygwin. Fetch system directory using GetSystemDirectoryW.
Use canonicalize_file_name to get full path.
(get_image_name): Use wcstombs, rather than WideCharToMultiByte
to convert Unicode pathname to multibyte on Cygwin. Otherwise,
use correct target buffer size in call to WideCharToMultiByte.
(handle_load_dll): Change size of dll_buf to PATH_MAX for Cygwin.
(windows_pid_to_exec_file): Change size of path to PATH_MAX for Cygwin.
(windows_create_inferior): Convert all paths and arguments to wchar_t
and use CreateProcessW on Cygwin.
(_initialize_windows_nat): Disable DOS-style path warning on Cygwin.
(bad_GetModuleFileNameExA): Undefine for Cygwin.
(bad_GetModuleFileNameExW): Define for Cygwin.
(_initialize_loadable): Load GetModuleFileNameExW into
dyn_GetModuleFileNameExW on Cygwin. Don't load ANSI function on Cygwin.
PR python/11036
* python/py-frame.c (frapy_read_var): Add block argument and logic
to cope with user provided blocks.
2010-02-28 Phil Muldoon <pmuldoon@redhat.com>
* gdb.texinfo (Frames In Python): Add block parameter and
description to read_var text.
2010-02-28 Phil Muldoon <pmuldoon@redhat.com>
* gdb.python/py-frame.exp: Add read_var block tests.
* gdb.python/py-frame.c (block): New function.
* infcall.c (call_function_by_hand): Remove gdb_assert on sp and old_sp.
New comment.
gdb/testsuite/
* gdb.base/callfuncs.exp: New tests for $spval 0 and -1. Remove return.
add ADDR_SIZE member.
(allocate_piece_closure): Update.
(copy_pieced_value_closure): Likewise.
(dwarf2_evaluate_loc_desc): Likewise.
(read_pieced_value): Use DWARF address size instead of
GDB's gdbarch_addr_bit as size of values on the DWARF stack.
Tom Tromey <tromey@redhat.com>
* python/py-type.c (typy_lookup_typename): Add in block argument.
If provided restrict lookup to specified blocks.
(gdbpy_lookup_type): Likewise.
(typy_lookup_type): Likewise.
2010-02-26 Phil Muldoon <pmuldoon@redhat.com>
Tom Tromey <tromey@redhat.com>
* gdb.texinfo (Types In Python): Describe block argument in
template_argument and gdb.lookup_type.
2010-02-24 David S. Miller <davem@davemloft.net>
* gdb_ptrace.h (PT_SYSCALL): If PTRACE_SYSCALL is available, use it.
* syscalls/sparc-linux.xml: New.
* syscalls/sparc64-linux.xml: New.
* Makefile.in (XML_SYSCALL_FILES): Add new syscall XML files.
* sparc-linux-tdep.c (XML_SYSCALL_FILENAME_SPARC32): Define.
(sparc32_linux_get_syscall_number): New function.
(sparc32_linux_init_abi): Set syscall XML file name and hook up
syscall number fetcher.
* sparc64-linux-tdep.c (XML_SYSCALL_FILENAME_SPARC64): Define.
(sparc64_linux_get_syscall_number): New function.
(sparc64_linux_init_abi): Set syscall XML file name and hook up
syscall number fetcher.
* breakpoint.c (clear_syscall_counts): Take struct inferior*.
* inferior.c (add_inferior_silent): Notify inferior_added
observer.
(delete_inferior_1): Notify inferior_removed observer.
(exit_inferior_1): Pass inferior, not pid, to observer.
(inferior_appeared): Likewise.
(add_inferior_with_spaces): New.
(add_inferior_command): Use the above.
* inferior.h (delete_inferior_1, add_inferior_with_spaces):
Declare.
* inflow.c (inflow_inferior_exit): Likewise.
* jit.c (jit_inferior_exit_hook): Likewise.
* mi/mi-cmds.c (mi_cmds): Register add-inferior and
remove-inferior.
* mi/mi-cmds.h (mi_cmd_add_inferior, mi_cmd_remove_inferior): New.
* mi/mi-interp.c (mi_inferior_added, mi_inferior_removed): New.
(report_initial_inferior): New.
(mi_inferior_removed): Register the above. Make sure
inferior_added observer is called on the first inferior.
(mi_new_thread, mi_thread_exit): Thread group is now identified by
inferior number, not pid.
(mi_solib_loaded, mi_solib_unloaded): Report which inferiors are
affected.
* mi/mi-main.c (current_context): New.
(proceed_thread_callback): Use typed closure.
Proceed everything if pid is 0. Most implementation split into
(proceed_thread): ... this.
(run_one_inferior): New.
(mi_cmd_exec_continue, mi_cmd_exec_interrupt, mi_cmd_exec_run):
Adjust for multiexec behaviour.
(mi_cmd_add_inferior, mi_cmd_remove_inferior): New.
(mi_cmd_execute): Handle the 'thread-group' option here.
Do some extra checks.
* mi-parse.c (mi_parse): Handle the --all and --thread-group
options.
* mi-parse.h (struct mi_parse): New fields all and thread_group.
(cleanup_restore_current_traceframe): Declare.
* tracepoint.c (set_traceframe_number): New.
(struct current_traceframe_cleanup): New.
(do_restore_current_traceframe_cleanup)
(restore_current_traceframe_cleanup_dtor)
(make_cleanup_restore_current_traceframe): New.
* infrun.c: Include tracepoint.h.
(fetch_inferior_event): Switch out and in of tfind mode.
PR9605
gdb/
* breakpoint.c (insert_bp_location): If inserting the read
watchpoint failed, fallback to an access watchpoint.
(bpstat_check_watchpoint): Stop for read watchpoint triggers even
if the value changed, if not watching the same memory for writes.
(watchpoint_locations_match): Add comment.
(update_global_location_list): Copy the location's watchpoint type.
* i386-nat.c (i386_length_and_rw_bits): It's an internal error to
handle read watchpoints here.
(i386_insert_watchpoint): Read watchpoints aren't supported.
* remote.c (remote_insert_watchpoint): Return 1 for unsupported
packets.
* target.h (target_insert_watchpoint): Update description.
2010-02-22 Pedro Alves <pedro@codesourcery.com>
PR9605
gdbserver/
* i386-low.c (i386_length_and_rw_bits): Throw a fatal error if
handing a read watchpoint.
(i386_low_insert_watchpoint): Read watchpoints aren't supported.
2010-02-22 Pedro Alves <pedro@codesourcery.com>
PR9605
gdb/testsuite/
* gdb.base/watch-read.c, gdb.base/watch-read.exp: New files.
* symfile.c (addr_info_make_relative): Extend comment. Move SECT to
a more inner block. Initialize ADDR by LOWER_OFFSET only if it was
found by bfd_get_section_by_name.
* symfile.h (struct section_addr_info) <sectindex>: New comment.
* linespec.c (decode_line_1): Handle FILE:FUNCTION even if
FUNCTION contains parentheses. Improve removal of a trailing
single quote.
gdb/testsuite/
* gdb.base/list.exp (test_list_filename_and_function): Add test
with single quotes.
* gdb.cp/overload.cc (intToChar): Rewrite onto one line for easy
matching.
* gdb.cp/overload.exp: Add tests with filename, function, and quotes.
Add KFAIL'd tests for PR gdb/11289.
* mi/mi-main.c: Added the --reverse flag to the following MI
commands: exec-continue, exec-finish, exec-next, exec-step,
exec-next-instruction, exec-step-instruction. This is to
support reverse execution over the MI interface to gdb.
* gdb.texinfo (Using the Collected Data): Specify that the address
range of `tfind outsize' is exclusive, and that the address range
of `tfind range' is inclusive.
(Tracepoint Packets): Specify that the address range of
`QTFrame:range' is inclusive, and that the address range of
`QTFrame:outside' is exclusive
gdb/
* tracepoint.c (_initialize_tracepoint): Specify that the address
range of `tfind outsize' is exclusive, and that the address range
of `tfind range' is inclusive, in the commands' help strings.
Return false if no breakpoint was created, true otherwise.
(trace_command): Don't set the tracepoint count if no tracepoint
was created.
(ftrace_command): Ditto.
(create_tracepoint_from_upload): Bail out if the tracepoint wasn't
created in the breakpoints table.
whitespace character after a dot in comment.
(mi_cmd_stack_list_arguments, mi_cmd_stack_list_variables):
Likewise.
(list_args_or_locals): For the 'all' (that is
-stack-list-variables) case, always output list of tuples.
Output 'arg' field if variable is argument.
* machoread.c (macho_symfile_relocate): New function.
(macho_sym_fns): Use macho_symfile_relocate instead of
default_symfile_relocate.
(macho_oso_data): New type.
(current_oso): New variable.
(macho_add_oso_symfile): Do not compute section_addr_info, but
instead set vma of sections.
Do not set SYMFILE_VERBOSE to call symbol_file_add_from_bfd.
Set and clear current_oso.
* ada-lang.c (ada_evaluate_subexp) [OP_VAR_VALUE]: When noside is
EVAL_AVOID_SIDE_EFFECTS, also handle the case when type is a
reference to a tagged type.
* valarith.c (value_ptrdiff): Added a test for a zero type length,
warn if found, and assume length = 1.
* gdb.cp/pr10728-x.h: New file.
* gdb.cp/pr10728-x.cc: New file.
* gdb.cp/pr10728-y.cc: New file.
* gdb.cp/pr10728.exp: New file.
* gdb.cp/Makefile.in (EXECUTABLES): Add pr10728
* cp-valprint.c (cp_print_value_fields) Fix use of obstacks.
cp_print_static_field) Fix use of obstacks.
* gdb.cp/pr9067.exp: New
* gdb.cp/pr9067.cc: New
* gdb.cp/Makefile.in (EXECUTABLES): Add pr9067
resumed LWPs as resumed.
(linux_nat_wait_1): If there's no resumed LWP in the set of LWPs
we're waiting for, bail out with TARGET_WAITKIND_IGNORE, instead
of throwing an internal error. If an LWP of a process we're not
waiting for reports a signal, don't force collecting a SIGSTOP,
and if it was breakpoint hit in non-stop mode, cancel it. Don't
go through all LWPs cancelling breakpoints in non-stop mode.
(resume_stopped_resumed_lwps): New.
(linux_nat_wait): Use it.
PR c++/7935:
* gdb.cp/namespace-using.exp: Removed kfail; bug has been fixed.
2010-02-05 Sami Wagiaalla <swagiaal@redhat.com>
PR c++/7935:
* cp-support.h: Added char* alias element to using_direct data
struct.
(cp_add_using): Added char* alias argument.
(cp_add_using_directive): Ditto.
* cp-namespace.c: Updated with the above changes.
(cp_lookup_symbol_imports): Check for aliases.
* dwarf2read.c (read_import_statement): Figure out local alias
for the import and pass it on to cp_add_using.
(read_namespace): Pass alias argument to cp_add_using.
* defs.h (gdb_bfd_errmsg): New extern.
* exec.c (exec_file_attach): Change bfd_errmsg to
gdb_bfd_errmsg.
* utils.c (AMBIGUOUS_MESS1): New macro.
(AMBIGUOUS_MESS2): New macro.
(gdb_bfd_errmsg): New function.
* valops.c (search_struct_field): Account for
value_embedded_offset. Fix check for virtual base past the end of
the object. Use value_copy when making a slice of the value.
gdb/testsuite
* gdb.cp/virtbase.exp: Make test case names unique.