aboutsummaryrefslogtreecommitdiff
path: root/gdb
AgeCommit message (Collapse)AuthorFilesLines
2010-08-25 PR threads/10729Pedro Alves7-47/+150
* linux-x86-low.c (update_debug_registers_callback): New. (i386_dr_low_set_addr): Use it. (i386_dr_low_get_addr): New. (i386_dr_low_set_control): Use update_debug_registers_callback. (i386_dr_low_get_control): New. (i386_dr_low_get_status): Adjust. * linux-low.c (linux_stop_lwp): New. * linux-low.h (linux_stop_lwp): Declare. * i386-low.c (I386_DR_GET_RW_LEN): Take the dr7 contents as argument instead of a i386_debug_reg_state. (I386_DR_WATCH_HIT): Take the dr6 contents as argument instead of a i386_debug_reg_state. (i386_insert_aligned_watchpoint): Adjust. (i386_remove_aligned_watchpoint): Adjust. (i386_low_stopped_data_address): Read the debug registers from the inferior instead of from the mirrors. * i386-low.h (struct i386_debug_reg_state): Extend comment. (i386_dr_low_get_addr): Declare. (i386_dr_low_get_control): Declare. (i386_dr_low_get_status): Change prototype. * win32-i386-low.c (dr_status_mirror, dr_control_mirror): New globals. (i386_dr_low_get_addr): New. (i386_dr_low_get_control): New. (i386_dr_low_get_status): Adjust prototype. Return dr_status_mirror. (i386_initial_stuff): Clear dr_status_mirror and dr_control_mirror. (i386_get_thread_context): Adjust. (i386_set_thread_context): Adjust. (i386_thread_added): Adjust.
2010-08-25 PR symtab/11942Doug Evans7-56/+258
* dwarf2read.c (dwarf2_per_objfile): New members debug_info_type_hash, debug_types_type_hash. (dwarf2_cu, dwarf2_per_cu_data): Delete member type_hash. All uses updated. (lookup_die_type): Renamed from tag_type_to_tag. First look in appropriate type_hash table. All callers updated. (allocate_signatured_type_table): Renamed from allocate_signatured_type_hash_table. All callers updated. (create_signatured_type_table_from_index): Renamed from create_signatured_type_hash_from_index. All callers updated. (read_die_type): Add comment. Move actual reading to ... (read_die_type_1): ... here. New function. (follow_die_ref_or_sig): Tweak comment. (set_die_type): Rewrite to use appropriate choice of debug_info_type_hash or debug_types_type_hash. (get_die_type_at_offset): New function. (get_die_type): Call it. testsuite/ PR symtab/11942 * gdb.dwarf2/dw4-sig-types.cc: New file. * gdb.dwarf2/dw4-sig-types.h: New file. * gdb.dwarf2/dw4-sig-types-b.cc: New file. * gdb.dwarf2/dw4-sig-types.exp: New file.
2010-08-25*** empty log message ***gdbadmin1-1/+1
2010-08-24 * linux-low.h (linux_thread_area): Delete declaration.Pedro Alves2-1/+4
2010-08-24gdb/Jan Kratochvil2-1/+5
* python/py-type.c (typy_richcompare): Initialize worklist.
2010-08-24 * arm-tdep.c: Include features/arm-with-m.c.Daniel Jacobowitz8-164/+336
(arm_psr_thumb_bit): New. Update all uses of CPSR_T to call this function. (arm_pc_is_thumb): Add a gdbarch argument. Update all callers. Check is_m after force-mode. (arm_gdbarch_init): Check the binary before the target description. Add check for M profile attribute. If we have an M-profile device, but no target register description, use arm-with-m. Recognize the new org.gnu.gdb.arm.m-profile feature and its xpsr register. (_initialize_arm_tdep): Call initialize_tdesc_arm_with_m. * arm-tdep.h (XPSR_T): Define. (struct gdbarch_tdep): Add is_m member. * features/arm-m-profile.xml, features/arm-with-m.c, features/arm-with-m.xml: New files. doc/ * gdb.texinfo (ARM Features): Document org.gnu.gdb.arm.m-profile.
2010-08-24*** empty log message ***gdbadmin1-1/+1
2010-08-23 * dwarf2read.c (set_die_type): Fix typo in comment.Doug Evans2-1/+2
2010-08-23 * dwarf2read.c (read_structure_type): Add comment.Doug Evans2-8/+25
(read_enumeration_type): Add comment. (process_enumeration_scope): Move definition of some locals closer to their use. (read_namespace_type): Add comment.
2010-08-23gdbTom Tromey7-3/+97
PR python/11145: * python/py-value.c: Include expression.h. (valpy_do_cast): New function. (valpy_cast): Use it. (valpy_dynamic_cast): New function. (valpy_reinterpret_cast): Likewise. (value_object_methods): Add dynamic_cast, reinterpret_cast. gdb/doc PR python/11145: * gdb.texinfo (Values From Inferior): Document dynamic_cast and reinterpret_cast methods. gdb/testsuite PR python/11145: * gdb.python/py-value.c (Base, Derived): New types. (base): New global. * gdb.python/py-value.exp (test_subscript_regression): Add dynamic_cast test.
2010-08-23 PR python/11391:Tom Tromey2-5/+8
* python/py-value.c (valpy_nonzero): Don't throw error for other Value types.
2010-08-23gdbTom Tromey4-1/+220
PR python/10676: * python/py-type.c: Include bcache.h, vec.h. (struct type_equality_entry): New. (compare_strings): New function. (check_types_equal): Likewise. (check_types_worklist): Likewise. (typy_richcompare): Likewise. (type_object_type): Set tp_richcompare field. gdb/testsuite PR python/10676: * gdb.python/py-type.exp (test_fields): Add tests for type equality.
2010-08-23 PR python/10953:Tom Tromey2-3/+20
* python/py-type.c (typy_fields): Call check_typedef. (typy_template_argument): Add TRY_CATCH.
2010-08-23gdbTom Tromey6-0/+81
PR python/11915: * python/py-type.c (typy_array): New function. (type_object_methods): Add "array". gdb/doc PR python/11915: * gdb.texinfo (Types In Python): Document array method. gdb/testsuite PR python/11915: * gdb.python/py-type.exp (test_fields): Add tests for array.
2010-08-23 * gdb.dwarf2/dw2-double-set-die-type.S: DIE 0x51f does notKeith Seitz2-1/+27
have any children. Create a new abbrev for it. Add missing terminal sequence to .debug_abbrev.
2010-08-23*** empty log message ***gdbadmin1-1/+1
2010-08-22*** empty log message ***gdbadmin1-1/+1
2010-08-21*** empty log message ***gdbadmin1-1/+1
2010-08-20 * python/python.c: Include "serial.h".Pedro Alves2-9/+24
(gdbpy_event_fds): Change type to `struct serial *' a array from int array. (gdbpy_run_events): Change parameters. Use serial_readchar in place of read. (gdbpy_post_event): Use serial_write in place of write. (gdbpy_initialize_events): Use serial_pipe instead of pipe, and serial_async in place of add_file_handler.
2010-08-20 * serial.h (gdb_pipe, serial_pipe): Declare.Pedro Alves6-24/+159
* serial.c (serial_interface_lookup): Take a const char pointer. (serial_fdopen): Rename to ... (serial_fdopen_ops): ... this. Add an OPS parameter and use it. Call the OPS' fdopen function if there is one. (serial_fdopen): Rewrite as wrapper to serial_fdopen_ops. (serial_pipe): New. (struct serial_ops) <fdopen>: New field. * ser-mingw.c (free_pipe_state): (free_pipe_state): Close output on non-pex pipes. (pipe_windows_fdopen): New. (gdb_pipe): New. (_initialize_ser_windows): Register pipe_windows_fdopen. * ser-go32.c (gdb_pipe): New. * ser-pipe.c (pipe_close): Close file descriptor even if there's no state pointer. (pipe_ops): Delete. (gdb_pipe): New.
2010-08-20 PR symtab/11465:Keith Seitz2-11/+130
* dwarf2read.c (struct delayed_method_info): New struct. (struct dwarf2_cu): Add vector method_list. (scan_partial_symbols): Count methods for union, class, structure, and interface types. (add_to_method_list): New function. (free_delayed_list): New function. (compute_delayed_physnames): New function. (process_full_comp_unit): Make a cleanup for the CU's delayed physname list, compute the delayed physnames, and free the the list. (dwarf2_add_member_fn): For C++ and Java, delay the computation of the physname until after the CU is read. * dwarf2read.c (read_structure_type): Check if the current DIE's type was already completed after dwarf2_full_name was called.
2010-08-20 PR symtab/11465:Keith Seitz5-0/+1076
* gdb.dwarf2/pr11465.exp: New test. * gdb.dwarf2/pr11465.S: New file. * gdb.dwarf2/dw2-double-set-die-type.S: New file. * gdb.dwarf2/dw2-double-set-die-type.exp: New test.
2010-08-20*** empty log message ***gdbadmin1-1/+1
2010-08-19 * NEWS: Mention some additional changes.Stan Shebs2-0/+56
2010-08-19 * Makefile.in (install-python): Add DESTDIR.Tom Tromey2-1/+5
2010-08-19 * gdb.arch/vsx-regs.exp: Remove wrong comment about testing AltiVecThiago Jung Bauermann2-10/+17
registers. Update data sets with the new v2_double element in the VSX register union. Add vector_register3_vr data set for the AltiVec registers. Use gdb_test_no_output instead of send_gdb.
2010-08-19 * gdb.python/py-shared.exp: New file, factored out fromPedro Alves8-24/+156
python.exp. * gdb.python/py-shared.c: New file. * gdb.python/py-shared-sl.c: New file. * gdb.python/python-1.c: New file. * gdb.python/python-sl.c: Delete. * gdb.python/python.c: Mention python-1.c. * gdb.python/python.exp: Move shared library tests to py-shared.exp. * gdb.python/Makefile.in (EXECUTABLES): Add py-shared and python. (MISCELLANEOUS): New. (clean mostlyclean): Also remove $MISCELLANEOUS.
2010-08-19 PR exp/11926Doug Evans13-108/+344
* parser-defs.h (parse_float, parse_c_float): Declare. * parse.c (parse_float, parse_c_float): New function. * c-exp.y (parse_number): Call parse_c_float. * objc-exp.y (parse_number): Ditto. * p-exp.y (parse_number): Ditto. Use ANSI/ISO-style definition. * jv-exp.y (parse_number): Call parse_float, fix suffix handling. testsuite/ * gdb.base/printcmds.exp (test_float_accepted): New function. Move existing float tests there. Add tests for floats with suffixes. (test_float_rejected): New function. * gdb.java/jv-print.exp (test_float_accepted): New function. (test_float_rejected): New function. * gdb.objc/print.exp: New file. * gdb.pascal/print.exp: New file. * lib/objc.exp: New file.
2010-08-19Fix regression in -file-list-exec-source-files command.Joel Brobecker3-2/+9
See http://sourceware.org/ml/gdb/2010-07/msg00118.html for a description of the problem. Namely, the file and fullname fields are inverted in the output of the -file-list-exec-source-files GDB/MI command: (gdb) interpreter-exec mi -file-list-exec-source-files ^done,files=[{file="/takamaka.a/brobecke/ex/list-exec-source-files/foo.c",fullname="foo.c"},{file="/takamaka.a/brobecke/ex/list-exec-source-files/foo.c",fullname="foo.c"},{file="",fullname="init.c"},{file="",fullname="../sysdeps/x86_64/elf/start.S"},{file="",fullname="../sysdeps/x86_64/elf/start.S"}] It turns out to be a silly thinko: The map_symbol_filenames function calls the psymtab version of map_symbol_filenames routine, and this version called the callback function with filename and fullname in the wrong order (fullname/filename instead of filename/fullname). The routine description in symfile.h confirst that expected order for the FUN callback parameters: /* Call a callback for every file defined in OBJFILE. FUN is the callback. It is passed the file's name, the file's full name, and the DATA passed to this function. */ void (*map_symbol_filenames) (struct objfile *objfile, void (*fun) (const char *, const char *, void *), void *data); Fixing this error uncovered another location where the arguments were reversed: maybe_add_partial_symtab_filename. Once the first error was fixed, the debugger would crash while attempting to do completion, because it was given a NULL fullname instead of the non-NULL filename. gdb/ChangeLog: * psymtab.c (map_symbol_filenames_psymtab): Call FUN with the arguments in the correct order. * symtab.c (maybe_add_partial_symtab_filename): Declare the arguments in the correct order.
2010-08-19gdb/Jan Kratochvil2-4/+10
* varobj.c (varobj_create): Replace variable old_fi with old_id, initialize it by null_frame_id, wrap its usage by get_frame_id, frame_id_p and frame_find_by_id.
2010-08-19 * gdb.base/default.exp (info set): Avoid full buffer error and forcePierre Muller2-4/+59
reading up to final gdb prompt. (show): Likewise.
2010-08-19*** empty log message ***gdbadmin1-1/+1
2010-08-18 PR python/11900:Tom Tromey4-0/+11
* configure: Rebuild. * configure.ac: Add install-python to CONFIG_INSTALL. * Makefile.in (install-python): New.
2010-08-18 * gdb_assert.h (gdb_assert_not_reached): New macro.Doug Evans13-26/+59
(gdb_assert_fail): Fix typo in comment. * avr-tdep.c (avr_return_value): Use gdb_assert_not_reached instead of gdb_assert (0). * darwin-nat.c (darwin_check_new_threads): Ditto. * dwarf2read.c (dwarf2_get_section_info): Ditto. (munmap_section_buffer): Ditto. * m32c-tdep.c (make_types): Ditto. (m32c_decode_srcdest4, m32c_decode_sd23, m32c_frame_base): Ditto. * macroexp.c (get_character_constant): Ditto. (get_string_literal): Ditto. * mep-tdep.c (mep_pseudo_cr_size): Ditto. (mep_pseudo_cr_index, mep_register_type): Ditto. (mep_pseudo_register_read, mep_pseudo_register_write): Ditto. (mep_get_insn, mep_analyze_prologue): Ditto. * objfiles.c (qsort_cmp): Ditto. * prologue-value.c (pv_is_identical): Ditto. * record.c (record_get_loc): Ditto. * value.c (value_static_field): Ditto. * xtensa-tdep.c (call0_track_op): Ditto.
2010-08-18gdbTom Tromey6-37/+41
PR symtab/11919: * gdbtypes.c (lookup_struct_elt_type): Clean up error emission. * parse.c (parse_field_expression): Use RETURN_MASK_ERROR. Move name-copying lower. Document exception behavior. * completer.c (expression_completer): Catch exceptions from parse_field_expression. gdb/testsuite PR symtab/11919: * gdb.base/completion.exp: Add test.
2010-08-18 * gdb.texinfo (PowerPC Embedded): Mention support for the DVC register.Thiago Jung Bauermann2-0/+17
2010-08-18 * gdb.base/call-ar-st.exp (set_lang_c): Delete, unused.Doug Evans14-218/+126
* gdb.base/callfuncs.exp (set_lang_c): Delete, set c language directly. * gdb.base/printcmds.exp (set_lang_c): Delete, set c language directly. Simplify, early exit if runto_main fails. * gdb.fortran/exprs.exp: load_lib fortran.exp. (set_lang_fortran): Moved to lib/fortran.exp. * gdb.fortran/types.exp: load_lib fortran.exp. (set_lang_fortran): Moved to lib/fortran.exp. * gdb.java/jmisc.exp (set_lang_java): Moved to lib/java.exp. * gdb.java/jprint.exp (set_lang_java): Ditto. * gdb.java/jv-exp.exp: load_lib java.exp. If set_lang_java fails, issue a warning instead of failure to be consistent with other set_lang_foo uses. (set_lang_java): Moved to lib/java.exp. * gdb.java/jv-print.exp (set_lang_java): Moved to lib/java.exp. If set_lang_java fails, issue a warning instead of failure to be consistent with other set_lang_foo uses. * gdb.pascal/types.exp: load_lib pascal.exp. (set_lang_pascal): Moved to lib/pascal.exp. * lib/fortran.exp: New file. * lib/java.exp (set_lang_java): New function. * lib/pascal.exp (set_lang_pascal): New function.
2010-08-18 PR corefile/8210Pedro Alves2-32/+74
* linux-thread-db.c (add_thread_db_info): Skip glibc/BZ5983 workaround on core files. (try_thread_db_load_1): Don't try enabling thread event reporting on core files. (thread_db_load): Allow thread_db on core files. (attach_thread): Don't check thread signals on core files, nor try really attaching to the thread, nor enabling thread event event reporting. (thread_db_detach): Don't try disabing thread event reporting or removing thread event breakpoints when debugging a core file. (find_new_threads_callback): Don't try enabling thread event reporting on core files. (thread_db_find_new_threads_2): Don't look for a stopped lwp when debugging a core file. (thread_db_find_new_threads): Don't update thread cores (processors) when debugging a core (dump).
2010-08-182010-08-18 Pedro Alves <pedro@codesourcery.com>Pedro Alves9-88/+22
PR corefile/8210 bfd/ * bfd-in2.h: Regenerate. * corefile.c (bfd_core_file_pid): New. * targets.c (BFD_JUMP_TABLE_CORE): Add NAME##_core_file_pid. (struct bfd_target) <_core_file_pid>: New. * libbfd-in.h (_bfd_nocore_core_file_pid): Declare. * libbfd.c (_bfd_nocore_core_file_pid): New. * elf-bfd.h (bfd_elf32_core_file_pid, bfd_elf64_core_file_pid): Declare. * elfcode.h (elf_core_file_pid): New define. * elfcore.h (elf_core_file_pid): New function. * elf.c (elfcore_make_pid): Rewrite. (elfcore_grok_prstatus): Only set core_pid if not set yet. (elfcore_grok_prstatus) [!HAVE_PRSTATUS_T_PR_WHO]: Fallback to getting the lwpid from prstat.pr_pid. * elf64-x86-64.c (elf64_x86_64_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. (elf64_x86_64_grok_psinfo): Extract the the main process's PID, and store it in elf_tdata's core_pid field. * elf32-i386.c (elf_i386_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. (elf_i386_grok_psinfo): Extract the the main process's PID, and store it in elf_tdata's core_pid field. * elf32-am33lin.c (elf32_am33lin_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-arm.c (elf32_arm_nabi_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-cris.c (cris_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-frv.c (elf32_frv_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-hppa.c (elf32_hppa_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-mips.c (elf32_mips_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-ppc.c (ppc_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-s390.c (elf_s390_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-score.c (s3_bfd_score_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-score7.c (s7_bfd_score_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-sh.c (elf32_shlin_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf32-xtensa.c (elf_xtensa_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf64-hppa.c (elf64_hppa_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf64-mips.c (elf64_mips_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elf64-ppc.c (ppc64_elf_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * elfn32-mips.c (elf32_mips_grok_prstatus): Write the LWPID to elf_tdata's core_lwpid instead of to core_pid. * plugin.c (bfd_plugin_core_file_pid): New function. * aout-target.h (MY_core_file_pid): Define. * aout-tic30.c (MY_core_file_pid, MY_core_file_p): New defines. * coff-rs6000.c (coff_core_file_pid): New define. (rs6000coff_vec, pmac_xcoff_vec): Use BFD_JUMP_TABLE_CORE. * coff64-rs6000.c (coff_core_file_pid): New define. (rs6000coff64_vec): Use BFD_JUMP_TABLE_CORE. (xcoff64_core_file_pid): New define. (aix5coff64_vec): Use BFD_JUMP_TABLE_CORE. * mach-o-target.c (bfd_mach_o_core_file_pid): New define. * aix386-core.c (aix386_core_file_pid): New define. * hppabsd-core.c (hppabsd_core_core_file_pid): New define. * hpux-core.c (hpux_core_core_file_pid): New define. * irix-core.c (irix_core_core_file_pid): New define. * lynx-core.c (lynx_core_file_pid): New define. * osf-core.c (osf_core_core_file_pid): New define. * ptrace-core.c (ptrace_unix_core_file_pid): New define. * sco5-core.c (sco5_core_file_pid): New define. * xcoff-target.h (coff_core_file_pid): New define. * netbsd-core.c (netbsd_core_core_file_pid): New define. gdb/ 2010-08-18 Pedro Alves <pedro@codesourcery.com> PR corefile/8210 gdb/ * corelow.c (add_to_thread_list): Don't use gdbarch_core_reg_section_encodes_pid. Use bfd_core_file_pid. (get_core_register_section): Don't use gdbarch_core_reg_section_encodes_pid. * gdbarch.sh (core_reg_section_encodes_pid): Delete. * gdbarch.h, gdbarch.c: Regenerate. * amd64-sol2-tdep.c (amd64_sol2_init_abi): Don't set gdbarch_core_reg_section_encodes_pid. * i386-sol2-tdep.c (i386_sol2_init_abi): Ditto. * sparc-sol2-tdep.c (sparc32_sol2_init_abi): Ditto. * sparc64-sol2-tdep.c (sparc64_sol2_init_abi): Ditto.
2010-08-18Forget to check in ChangeLog in my previous commit.Yao Qi1-0/+6
http://sourceware.org/ml/gdb-cvs/2010-08/msg00098.html
2010-08-18In order to fix a checkin mistake in dw2-ref-missing-frame-func.c:r1.2,Yao Qi1-0/+2
revert it back, and re-apply the correct patch again. 2010-08-18 Yao Qi <yao@codesourcery.com * gdb.dwarf2/dw2-ref-missing-frame-func.c: Add .p2align 4 for labels func_nofb_start and func_loopfb_start, so that address of functions is equal to these labels on Thumb.
2010-08-18revert back to previous revisionYao Qi2-8/+0
2010-08-182010-08-18 Yao Qi <yao@codesourcery.comYao Qi2-0/+8
* gdb.dwarf2/dw2-ref-missing-frame-func.c: Add .p2align 4 for labels func_nofb_start and func_loopfb_start, so that address of functions is equal to these labels on Thumb.
2010-08-182010-08-18 Yao Qi <yao@codesourcery.com>Yao Qi2-2/+11
* gdb.gdb/selftest.exp (do_steps_and_nexts): Update test case to reflect latest c source file.
2010-08-182010-08-18 Yao Qi <yao@codesourcery.com>Yao Qi2-0/+5
* MAINTAINERS : Add myself under Write After Approval.
2010-08-18*** empty log message ***gdbadmin1-1/+1
2010-08-17 * NEWS: Mention template parameter support.Tom Tromey2-0/+15
2010-08-17gdb/testsuite/Jan Kratochvil4-0/+105
* gdb.cp/infcall-dlopen.exp: New file. * gdb.cp/infcall-dlopen.cc: New file. * gdb.cp/infcall-dlopen-lib.cc: New file.
2010-08-17 * breakpoint.c (decref_bp_location): Assert the reference count isPedro Alves2-0/+9
sane.
2010-08-17gdb/Pedro Alves6-108/+332
2010-08-17 Pedro Alves <pedro@codesourcery.com> PR breakpoints/11371 * breakpoint.c (breakpoint_init_inferior): Decrement the location's reference count instead of deleting right away. (bpstat_free): Decrement the location's reference count. Make static. (bpstat_copy): Increment the location's reference count. (bpstat_find_breakpoint): Adjust. (bpstat_num): Adjust. (print_it_typical): Adjust. Use the breakpoint pointer in the bpstat instead of the location's owner. (bpstat_alloc): Remove const qualifier from the 'bl' parameter. Adjust to record the location's owner in the bpstat. (watchpoint_check): Use the breakpoint pointer in the bpstat instead of the location's owner. (bpstat_check_breakpoint_conditions): Don't handle bp_watchpoint_scope here. Use the breakpoint pointer in the bpstat instead of the location's owner. (bpstat_stop_status): Defer inferior function calls to after building the bpstat list. Handle bp_watchpoint_scope here. Use the breakpoint pointer in the bpstat instead of the location's owner. (bpstat_what): Use the breakpoint pointer in the bpstat instead of the location's owner. (free_bp_location): Don't walk bpstats clearing locations. (incref_bp_location): New. (decref_bp_location): New. (breakpoint_auto_delete): Use the breakpoint pointer in the bpstat instead of the location's owner. (update_global_location_list): Clear the location's owner, and decrement the location's reference count instead of deleting it right away. (breakpoint_retire_moribund): Decrement the location's reference count instead of deleting it right away. (bpstat_remove_bp_location): Delete. (bpstat_remove_breakpoint): New. (bpstat_remove_bp_location_callback): Delete. (bpstat_remove_breakpoint_callback): New. (delete_breakpoint): Iterate over all threads' stop_bpstat's clearing references to the breakpoint that is being deleted. * breakpoint.h (struct bp_location) <refc>: New field. <owner>: Update comments. (bpstat_free): Delete declaration. (struct bpstats): Change the type of the breakpoint_at field to struct breakpoint point, from struct bp_location pointer. Add new field bp_location_at. gdb/testsuite/ 2010-08-17 Jan Kratochvil <jan.kratochvil@redhat.com> Pedro Alves <pedro@codesourcery.com> PR breakpoints/11371 * gdb.base/watch-cond-infcall.exp: New file. * gdb.base/watch-cond-infcall.c: New file.