This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] new set/show multiple-symbols command (take 4)


Following a suggestion from Daniel, I changed the name of the new
setting to something more explicit and yet shorter.  This is the only
different between this patch and take 3.

To summarize again, this patch introduces a new set/show command set:

        (gdb) set multiple-symbols (ask|all|cancel)
        (gdb) show multiple-symbols

For everyone's convenience, I'm repeating here the context for this
new command, to avoid so that a cross-reference is not necessary.

The idea is that some expressions are ambiguous, and that the debugger
normally has several options: Select all matching symbols, ask the user
to select one or more of them, or error out.  This new option allows
the user to configure how the debugger should behave in that situation:

  - "all" (default): auto-select all matching symbols.
  - "ask": Auto-selection is off, so display a menu with all possible
           choices and ask the user to choose one or more of them.
  - "cancel": Abort the command explaining why.

After the new setting was introduced, I modified ada-lang.c and
linespec.c to take it into account. That resulted in some behavior
changes which I think I desirable and consistent with what we have done
recently with multiple-location breakpoints. In order to preserve
the current testcases, I simply forced multiple-symbols to "ask"
to reproduce the previous behavior.

I also added some testing of the cases when multiple-symbols is set to
"cancel" and "all". I still haven't written an Ada testcase but that's
very easy. I'll do that next, as well as sending a documentation update
if this patch is approved (including a NEWS entry).

2008-02-03  Joel Brobecker  <brobecker@adacore.com>

        * symtab.c (multiple_symbols_ask, multiple_symbols_all)
        (multiple_symbols_cancel): New constants.
        (multiple_symbols_modes, multiple_symbols_mode): New static globals.
        (multiple_symbols_select_mode): New function.
        (_initialize_symtab): Add new set/show multiple-symbols commands.
        * symtab.h (multiple_symbols_ask, multiple_symbols_all)
        (multiple_symbols_cancel, multiple_symbols_select_mode): Declare.
        * ada-lang.c (user_select_syms): Add handling of new multiple-symbols
        setting.
        * linespec.c (decode_line_2): Likewise.

2008-02-03  Joel Brobecker  <brobecker@adacore.com>

        * gdb.cp/ovldbreak.cc: Add missing bodies for methods foo::foofunc.
        * gdb.cp/ovldbreak.exp: Set multiple-symbols to "ask".
        Add a couple of tests that verify the behavior when the new setting
        is set to "cancel" and "all".
        * gdb.cp/method2.exp, gdb.cp/templates.exp: Set multiple-symbols to
        "ask" before we start the testing.

Tested on x86-linux.
OK to apply?

Thanks,
-- 
Joel

Attachment: ms.diff
Description: Text document

Attachment: ms-tc.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]