Commit Graph

29520 Commits

Author SHA1 Message Date
Tom Tromey
e848a8a515 PR python/12533:
* value.h (release_value_or_incref): Declare.
	* value.c (struct value) <released>: New field.
	(free_all_values, release_value, value_release_to_mark): Update
	'released'.
	(release_value_or_incref): New function.
	* python/py-value.c (valpy_new): Use release_value_or_incref.
	(value_to_value_object): Likewise.
	* varobj.c (install_new_value): Move value_incref earlier.
2011-12-22 19:51:10 +00:00
Tom Tromey
87784a4754 * value.c (struct value) <modifiable, lazy, optimized_out,
initialized, stack>: Now bitfields.  Move to top.
	<reference_count>: Move earlier.
2011-12-22 19:41:59 +00:00
Tom Tromey
b19686e08b * minsyms.h: Rearrange. Document header and all functions.
* minsyms.c: Move some comments to minsyms.h.
2011-12-22 02:34:34 +00:00
gdbadmin
cbbc9a5c83 *** empty log message *** 2011-12-22 00:00:33 +00:00
Tom Tromey
c35384fbef * symtab.h: Include minsyms.h.
(prim_record_minimal_symbol, prim_record_minimal_symbol_full)
	(prim_record_minimal_symbol_and_info, msymbol_hash_iw)
	(msymbol_hash, SYMBOL_HASH_NEXT, msymbol_objfile)
	(lookup_minimal_symbol, lookup_minimal_symbol_text)
	(lookup_minimal_symbol_solib_trampoline)
	(lookup_minimal_symbol_by_pc_name, lookup_minimal_symbol_by_pc)
	(iterate_over_minimal_symbols, lookup_minimal_symbol_and_objfile)
	(lookup_minimal_symbol_by_pc_section)
	(lookup_solib_trampoline_symbol_by_pc)
	(init_minimal_symbol_collection)
	(make_cleanup_discard_minimal_symbols, install_minimal_symbols)
	(msymbols_sort): Move to minsyms.h.
	* objfiles.c (terminate_minimal_symbol_table): Move to minsyms.c.
	* minsyms.c (terminate_minimal_symbol_table): Move from
	objfiles.c.
	* minsyms.h: New file.
2011-12-21 21:51:57 +00:00
Tom Tromey
a5bd37c3ca * hppa-hpux-tdep.c (hppa64_hpux_search_dummy_call_sequence): Use
ALL_OBJFILE_MSYMBOLS.
	(hppa_hpux_find_dummy_bpaddr): Likewise.
	* jit.c (jit_object_close_impl): Use
	terminate_minimal_symbol_table.
2011-12-21 21:34:25 +00:00
Tom Tromey
0af1e9a54b * elfread.c (elf_symtab_read): Put the filename in the filename
bcache.
2011-12-21 21:30:31 +00:00
Tom Tromey
04aba06513 * symtab.h (struct minimal_symbol) <filename>: Now const. 2011-12-21 21:24:59 +00:00
Ulrich Weigand
7052e42c35 gdb/
PR tdep/12797
	* arm-tdep.c (arm_return_value): Handle complex types.

gdb/testsuite/
	PR tdep/12797
	* gdb.base/callfuncs.exp: Remove KFAIL.
2011-12-21 21:13:15 +00:00
Andreas Schwab
f16c4e8bdd * ppc-linux-nat.c (create_watchpoint_request): Only use ranged
watchpoints when supported.
2011-12-21 15:27:29 +00:00
Jan Kratochvil
4ac39b9724 gdb/
* symfile.c (objfilep): New typedef and new DEF_VEC_P.
	(reread_symbols): Remove variable reread_one, new variables
	new_objfiles, all_cleanups and ix.  Use new_objfiles instead of
	reread_one.  Push changed objfiles to new_objfiles, call
	observer_notify_new_objfile for them later.
2011-12-21 14:25:53 +00:00
Joel Brobecker
bb2f58dc41 Use symbol search name in expand_symtabs_matching_via_partial...
We are iterating over all symbols in a partial symtab that would
match a given name, so we should match the partial symbols
search name against the given name rather than using the natural
name.  In C++, that does not make a difference, but it does in
Ada, because Ada searches using the symbol encoded name...

We also update the generation of the .gdb_index file to match this
change in the search. Although technically an incompatible change,
we do not increment the gdb_index version number, because Ada is
the only language where it would make a difference - except that
this feature is not supported for Ada.

gdb/ChangeLog:

        * psymtab.c (expand_symtabs_matching_via_partial): Match
        the partial symbols using their SYMBOL_SEARCH_NAME.
        * symfile.h (struct quick_symbol_functions): Udate the
        documentation of expand_symtabs_matching.
        * dwarf2read.c (write_psymbols): Use SYMBOL_SEARCH_NAME instead
        of SYMBOL_NATURAL_NAME in index entry.
2011-12-21 07:34:09 +00:00
Joel Brobecker
53907c915d Add handling for unqualified Ada operators in linespecs
This patch enhances the linespec parser to recognize unqualified
operator names in linespecs. This allows the user to insert a breakpoint
on operator "+" as follow, for instance:

        (gdb) break "+"

Previously, it was possible to insert such a breakpoint, but one
had to fully qualify the function name. For instance:

        (gdb) break ops."+"

gdb/ChangeLog:

        * linespec.c (locate_first_half): Add handling of Ada operators
        when the current language is Ada.
2011-12-21 07:24:40 +00:00
Joel Brobecker
50f8ea949d missing check against overlay_debugging in objfiles.c
This fixes a problem where the debugger is trying to locate a minimal
symbol from its address, when the symbol is inside a section whose
VMA is different from its LMA.

We have a program that was built on ppc-elf using a linker script
such that data sections are placed in ROM, and then loaded onto RAM
at execution.  So their VMA addresses are indeed different from
their LMA address.

Unfortunately, there is one place where GDB gets slightly confused
into thinking that these data sections are overlayed, while it's
not the case here.  This show up when trying to print the list of
Ada tasks, where GDB is unable to determine their names, and thus
prints a generic `Ravenscar task' instead:

    (gdb) info tasks
       ID       TID P-ID Pri State                  Name
        1     1d580      127 Delay Sleep            Ravenscar task
        2     183f8      127 Delay Sleep            Ravenscar task
    *   3     13268      127 Runnable               Ravenscar task

We expected:

    (gdb) info tasks
       ID       TID P-ID Pri State                  Name
        1     1d580      127 Delay Sleep            environment_task
        2     183f8      127 Delay Sleep            raven2
    *   3     13268      127 Runnable               raven1

The name of the task is determined by looking up the symbol table
using the task ID, which is the address where the symbol is defined.
So, ada-tasks calls...

    msym = lookup_minimal_symbol_by_pc (task_id);

... which in turn first tries to determine the section associated
to this address (find_pc_section), which itself uses a map of sections
to find it. The map itself is recomputed every time objfiles are
loaded/changed by `update_section_map'. And `update_section_map'
relies on `insert_section_p' to determine whether the section should
be inserted in the map or not.

This is where things get interesting for us, because `insert_section_p'
simply rejects overlay sections:

  if (lma != 0 && lma != bfd_section_vma (abfd, section)
      && (bfd_get_file_flags (abfd) & BFD_IN_MEMORY) == 0)
    /* This is an overlay section.  IN_MEMORY check is needed to avoid
       discarding sections from the "system supplied DSO" (aka vdso)
       on some Linux systems (e.g. Fedora 11).  */
    return 0;

However, it shouldn't reject our section in this case, since overlay
debugging is off.  The fix is to add a check that overlay debugging
is active before rejecting the section.  This is similar to what is
done in `section_is_overlay' (which takes obj_section objects), for
instance.

gdb/Changelog:

        * objfiles.c (insert_section_p): Do not detect overlay sections
        if overlay debugging is off.
2011-12-21 07:11:52 +00:00
Joel Brobecker
9ac7f98e7c [Ada] Breakpoints on task bodies
Consider the following declaration:

    package Pck is
       task Dummy_Task is
          entry Start;
       end Dummy_Task;
    end Pck;

Inserting a breakpoint on the body of that task does not currently
work:

    (gdb) b pck.dummy_task
    "pck.dummy_task" is not a function
    Make breakpoint pending on future shared library load? (y or [n]) n

What happens here is that the compiler generates two symbols:

  (a) Symbol `pck__dummy_task' which is a *variable* referencing
      the task;

  (b) Symbol `pck__dummy_taskTKB' which is the subprogram implementing
      the body of the task.

The symbol lookup only finds the variable before of the TKB suffix in
the subprogram name. This patch fixes the problem by adjusting the
ada-lang.c:is_name_suffix routine to recognize "TKB" suffixes.  But
that's not enough, because the search in the symtab is performed via
the block dictionary, using a hashing algorithm. So, for the search
to find `pck__dummy_taskTKB', I had to modify the hashing function
to ignore TKB suffixes as well.

gdb/ChangeLog:

        * ada-lang.c (is_name_suffix): Add handling of "TKB" suffixes.
        Update function documentation.
        * dictionary.c (dict_hash): Ignore "TKB" suffixes in hash
        computation.

gdb/testsuite/ChangeLog:

        * gdb.ada/task_bp: New testcase.
2011-12-21 07:10:59 +00:00
gdbadmin
496c2508ac *** empty log message *** 2011-12-21 00:00:33 +00:00
Pedro Alves
6e012a6c38 2011-12-20 Pedro Alves <alves.ped@gmail.com>
Jan Kratochvil  <jan.kratochvil@redhat.com>

        * linux-nat.c (add_lwp): Don't call linux_nat_new_thread on the
	first LWP.
	* amd64-linux-nat.c (update_debug_registers_callback): Instantiate
	`lwp->arch_private' if NULL.
	(amd64_linux_prepare_to_resume): Do nothing if `lwp->arch_private'
	is NULL.
	* i386-linux-nat.c (update_debug_registers_callback): Instantiate
	`lwp->arch_private' if NULL.
	(i386_linux_prepare_to_resume): Do nothing if `lwp->arch_private'
	is NULL.
2011-12-20 10:40:15 +00:00
Doug Evans
87c31f0622 * python/py-auto-load.c (info_auto_load_scripts): Pass address of
scripts vector to collect_matching_scripts.
	(collect_matching_scripts): Update.
2011-12-20 04:29:35 +00:00
gdbadmin
9542d6ad01 *** empty log message *** 2011-12-20 00:00:03 +00:00
Jan Kratochvil
f6eeced03d gdb/
* symfile.c (reread_symbols): Move free_objfile_separate_debug,
	preserve_values, sym_finish and clear_objfile_data calls before BFD
	close.  Move free_objfile_separate_debug as the very first call.  New
	comment on the ordering.

gdb/testsuite/
	* gdb.base/reread.exp: If srcfile2 fails to build retry it with
	-DNO_SECTIONS.
	* gdb.base/reread2.c <!NO_SECTIONS>: New sections block.
2011-12-19 22:20:07 +00:00
Ulrich Weigand
8de7d199bb * s390-tdep.c (s390_push_dummy_call): Set addressing mode bit
in return PSWA.
2011-12-19 21:44:57 +00:00
Tom Tromey
984ac46443 * symtab.h (add_minsym_to_hash_table): Don't declare.
* minsyms.c (add_minsym_to_hash_table): Now static.
2011-12-19 16:11:14 +00:00
Jan Kratochvil
72225e1798 gdb/testsuite/
* gdb.cp/ptype-cv-cp.exp (ptype v_volatile_const_my_int): Make
	PR gcc/45997 XFAIL conditional for gcc <= 4.5.
	* gdb.python/py-type.exp (python print ttype.template_argument(2)):
	Change PR gcc/41736 to the more specific PR gcc/46955.  Make it
	conditional for gcc <= 4.5.
2011-12-19 13:42:50 +00:00
Jan Kratochvil
13ac8d2c29 gdb/doc/
* gdbint.texinfo (Testsuite): Describe KFAIL and XFAIL in Writing
	tests.

gdb/testsuite/
	* gdb.cp/ptype-cv-cp.exp (ptype v_volatile_const_my_int): Replace KFAIL
	by XFAIL.
	* gdb.cp/static-method.exp (info addr A::func())
	(list static-method.cc:xxx::(anonymous namespace)::A::func)
	(list 'static-method.cc:xxx::(anonymous namespace)::A::func')
	(list 'static-method.cc':'xxx::(anonymous namespace)::A::func')
	(list static-method.cc:'xxx::(anonymous namespace)::A::func'): Likewise.
	* gdb.cp/temargs.exp (test value of F in k2_m, test type of F in k3_m)
	(test value of F in k3_m): Likewise.
	* gdb.python/py-type.exp (python print ttype.template_argument(2)):
	Likewise.
2011-12-19 13:37:34 +00:00
Jan Kratochvil
049682ba03 gdb/testsuite/
* gdb.threads/attach-stopped.exp (continue (*: attach2 continue))
	(*: attach2 stop interrupt, *: attach2, exit leaves process sleeping):
	Remove.
	* gdb.threads/attachstop-mt.c: Remove.
	* gdb.threads/attachstop-mt.exp: Remove.
2011-12-19 10:31:43 +00:00
Joel Brobecker
828cfa8d0b try ignoring bad PLT entries in ELF symbol tables
Comment says it all:

         /* On ia64-hpux, we have discovered that the system linker
            adds undefined symbols with nonzero addresses that cannot
            be right (their address points inside the code of another
            function in the .text section).  This creates problems
            when trying to determine which symbol corresponds to
            a given address.

            We try to detect those buggy symbols by checking which
            section we think they correspond to.  Normally, PLT symbols
            are stored inside their own section, and the typical name
            for that section is ".plt".  So, if there is a ".plt"
            section, and yet the section name of our symbol does not
            start with ".plt", we ignore that symbol.  */

gdb/ChangeLog:

        * elfread.c (elf_symtab_read): Ignore undefined symbols with
        nonzero addresses if they do not correspond to a .plt section
        when one is available in the objfile.
2011-12-19 04:36:29 +00:00
gdbadmin
9a5ce6c054 *** empty log message *** 2011-12-19 00:00:32 +00:00
Jan Kratochvil
3e52c33d23 gdb/gdbserver/
* linux-low.c (linux_create_inferior): Put empty if clause for write.

	Revert:
	2011-12-18  Hui Zhu  <teawater@gmail.com>
	* linux-low.c (linux_create_inferior): Save return value to ret.
2011-12-18 20:55:08 +00:00
Hui Zhu
66f1260e72 2011-12-18 Hui Zhu <teawater@gmail.com>
* linux-low.c (linux_create_inferior): Save return value to ret.
2011-12-18 15:49:04 +00:00
gdbadmin
fd1daff702 *** empty log message *** 2011-12-18 00:00:33 +00:00
Andreas Schwab
dd274a34d2 * cp-name-parser.y (cp_merge_demangle_parse_infos): Don't use
obstack_empty_p.
2011-12-17 20:10:57 +00:00
Mark Kettenis
a3e3e961b4 * amd64obsd-tdep.c (amd64obsd_init_abi): Don't set
regset_from_core_section.
(amd64obsd_core_init_abi): New function that sets
regset_from_core_section.
(_initialize_amd64obsd_tdep): Use amd64obsd_core_init_abi for
traditional core dumps.
2011-12-17 15:45:56 +00:00
Mark Kettenis
2c9d87964d * gdb.arch/amd64-i386-address.exp: Skip on *-*-openbsd*. 2011-12-17 13:54:51 +00:00
Mark Kettenis
0dcddd8422 * amd64obsd-tdep.c (amd64obsd_sigtramp_p): Detect new signal
trampoline to be introduced in OpenBSD 5.0.
2011-12-17 12:22:06 +00:00
Jan Kratochvil
3e290cb1d1 gdb/
Fix build regression from the PR threads/10729 fix.
	* s390-nat.c (s390_insert_watchpoint, s390_remove_watchpoint): Use LP,
	not LP->PTID.
2011-12-17 09:43:53 +00:00
Andrey Smirnov
56934ab1ce * mi/mi-main.c (mi_cmd_list_thread_groups): Rename `optind' and
`optarg' to `oind' and `oarg', respectively(-Wshadow).
(mi_cmd_data_read_memory): Ditto.
(mi_cmd_data_read_memory_bytes): Ditto.
2011-12-17 06:14:45 +00:00
Andrey Smirnov
324478caa7 * mi/mi-getopt.c (mi_getopt): Rename optind' and optarg' to
`oind' and `oarg', respectively(-Wshadow).
(mi_valid_noargs): Ditto.
2011-12-17 06:09:54 +00:00
Andrey Smirnov
54dc829719 * mi/mi-cmd-var.c (print_varobj): Rename optind' and optarg' to
`oind' and `oarg', respectively(-Wshadow).
2011-12-17 06:06:49 +00:00
Andrey Smirnov
006292124e * mi/mi-cmd-target.c (mi_cmd_target_file_get): Rename `optind' and
`optarg' to `oind' and `oarg', respectively(-Wshadow).
(mi_cmd_target_file_put): Ditto.
(mi_cmd_target_file_delete): Ditto.
2011-12-17 06:03:21 +00:00
Andrey Smirnov
7082409d2d * mi/mi-cmd-env.c (mi_cmd_env_path): Rename `optind' and
`optarg' to `oind' and `oarg', respectively(-Wshadow).
(mi_cmd_env_dir): Ditto.
2011-12-17 05:58:27 +00:00
Andrey Smirnov
81493c6264 * mi/mi-cmd-disas.c (mi_cmd_disassemble): Rename optind' and optarg'
to `oind' and `oarg', respectively(-Wshadow).
2011-12-17 05:53:59 +00:00
Andrey Smirnov
f8c000a26c * mi/mi-cmd-break.c (mi_cmd_break_insert): Rename `optind' and
`optparg' to `oind' and `oparg', respectively(-Wshadow).
(mi_cmd_break_watch): Ditto.
2011-12-17 05:49:34 +00:00
gdbadmin
65f63e5015 *** empty log message *** 2011-12-17 00:00:03 +00:00
Tom Tromey
07fea4b413 * linespec.c (collect_symbols): Call maybe_add_address after
calling symbol_to_sal.
	(minsym_found): Call maybe_add_address here.
	(search_minsyms_for_name): Don't call maybe_add_address.
2011-12-16 21:39:16 +00:00
Tom Tromey
39b856a4b1 * linespec.c (struct collect_info) <objfile>: Remove field.
(decode_objc): Update.
	(find_method): Update.
	(decode_variable): Update.
	(struct minsym_and_objfile): New.
	(struct collect_minsyms): New.
	(classify_mtype): New function.
	(compare_msyms): Likewise.
	(add_minsym): Likewise.
	(check_minsym): Remove.
	(search_minsyms_for_name): Sort minsyms and apply only those with
	top priority.
2011-12-16 21:35:57 +00:00
Tom Tromey
ccbac09dc1 * cli/cli-cmds.c (filter_sals): Filter out sals with NULL symtab. 2011-12-16 21:17:42 +00:00
Pedro Alves
77cce10fc2 2011-12-16 Pedro Alves <pedro@codesourcery.com>
* inf-loop.c: Include top.h.
	(inferior_event_handler): Call check_frame_language.
	* top.c (check_frame_language_change): New, factored out from ...
	(execute_command): ... this.  Use check_frame_language_change.
	* top.h (check_frame_language_change): Declare.
2011-12-16 20:29:28 +00:00
Doug Evans
f4aa210198 fix typo in previous entry 2011-12-16 20:04:35 +00:00
Doug Evans
cfd16f96e3 * boards/native-stdiogdbserver.exp: New file. 2011-12-16 20:02:05 +00:00
Pierre Muller
a961bc186c * windows-nat.c (cygwin_get_dr, cygwin_get_dr7): Add missing
prototypes.
2011-12-16 19:55:26 +00:00