public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/40] C++ debugging improvements: breakpoints, TAB completion, more
@ 2017-06-02 12:22 Pedro Alves
  2017-06-02 12:22 ` [PATCH 14/40] Introduce CP_OPERATOR_STR/CP_OPERATOR_LEN and use throughout Pedro Alves
                   ` (40 more replies)
  0 siblings, 41 replies; 183+ messages in thread
From: Pedro Alves @ 2017-06-02 12:22 UTC (permalink / raw)
  To: gdb-patches

This series a long story behind it.  In sum, it:

 - teaches GDB to set breakpoints on all namespaces/scopes by default.
 - it adds a new option "break -qualified" to override the behavior.
 - adds a proper/smart linespec completer
 - gets rid of the need for quoting function names in tab completion

and much more, but that's the gist of it.

Most of the tests are close to the end of the series instead of being
added incrementally, because the way they're written, they only really
work when everything is blending nicely together.

Documentation changes are in the last patch.

A few months back I was looking at making GDB use gnulib's C++
namespace mode, because the default mode has gnulib define its
replacements using macros, like "#define open rpl_open".  In C++
that's a bad idea, given that using names like "open", "close",
etc. in classes and namespaces is the natural thing to do.  E.g.,
"struct target_ops::to_open" could be "class target::open".

After experimentation, I concluded that the best would be to wrap all
of GDB in:

 namespace gdb {
 }

and so I tried it:
 https://github.com/palves/gdb/commits/palves/cxx-gdb-namespace

however, when I actually got it working and started debugging that
GDB, I immediately got frustrated with GDB's C++ support.  I.e., the
dog food didn't taste so good.

The problem was that now you'd always need to prefix every function
name with "gdb::".  I.e., "b gdb::internal_error", etc., etc.  And it
gets annoying pretty fast.

I thought that GDB should be able to do better.  I thought that maybe
GDB could infer the namespace from local context, so you'd still be
able to do "b foo", and that would find "gdb::foo".  However, that
doesn't work well, because you want to be able to conveniently set
breakpoints before starting a program, when there's no frame yet.
And, running to main doesn't help, because main is not in any
namespace.  Also, the direction linespecs / setting breakpoints is
aiming, is in not relying in local context at all.  Instead, match the
most possible, and let users filter it down if they want.  I.e., e.g.,
"b foo" sets locations in all "foo" functions in the program in all
compilation units, no matter whether they're both extern or static
function, no matter where you're currently stopped in the program.
Likewise "b source.c:foo" looks at all source files named "source.c",
not just the current source if it happens to have that name.  You can
set set a breakpoint on a C++ symbol named "some_klass::method()",
even if the current frame's language is C, not C++.  Etc., etc.

The idea then occurred to me.  How about we make GDB ignore leading
namespaces when setting breakpoints?  I.e., just like "b foo" sets a
breakpoint on all "foo"s in the program, and you can zoom in on
specific "foo" functions by specifying a source file to scope the
symbol search, like "b source.c:foo", by default we'd make "b foo" set
a breakpoint on all functions and methods named "foo" too, like
"A::foo", "B::A::foo", "(anonymous namespace)::foo", and of course
global "foo".  And then if you scope the name, like "A::foo", GDB
would find both "A::foo", and "B::A::foo", but not the others.  Etc.,
etc.  E.g.,:

  (gdb) b function[TAB]
  A::function()
  B::A::function()
  function()
  (anonymous namespace)::function()
  (gdb) b function
  Breakpoint 1 at 0x4005ce: function. (4 locations)

  (gdb) b A::function[TAB]
  A::function()
  B::A::function()
  (gdb) b function
  Breakpoint 1 at 0x4005ce: function. (2 locations)

That sounded quite promising to me.  Turns out that that's what lldb
does too, so I started experimenting with doing the same in GDB.
Along the way, I realized that gdb's Ada support has always behaved
like that...  ada-lang.c calls it "wild matching" vs "full matching"
(see full_match and wild_match).  So it's not really a new idea for
GDB.  The problem is that Ada does that on its own little ada-lang.c
corner, out of view..  :-P

Actually, above I'm showing TAB completion.  But there's more to that.
Once it got it working for setting breakpoints, I realized that TAB
completion would need to be adjusted too.  TAB completion goes via
different symbol search code paths...  I required adjustment because
while "b foo[RET]" would find all functions named "foo", "b foo[TAB]"
would only show symbols that start with "foo"...

Fixing that required virtually rewriting how GDB interacts with
readline for completion.  The main issue is that you want this to
happen:

  (gdb) b func[TAB]      # expands input line to ...
  (gdb) b function(      # ... this
  (gdb) b function([TAB] # another tab now shows you the candidates
  A::B::function(int)
  A::C::function(long)

Notice how the input line above was expanded to "function(", but,
that's not actually the common leading prefix between all completion
candidates!  If we'd let readline compute what it calls the "lowest
common denominator", then this is what you'd see:

  (gdb) b func[TAB]      # expands input line to ...
  (gdb) b A::            # ... this...

which is obviously bogus.

Actually, notice how above I didn't quote "function(", like:

  (gdb) b 'function([TAB]
          ^ quote

That's because while working on this series, I got even more annoyed
with the fact that currently, you have overloads in your program, and
you want to set a breakpoint in one of them:

 void function(int);  // set breakpoint here.
 void function(long);

 (gdb) b func[TAB]
 (gdb) b function(       # ok, gdb completed as much as possible.
 (gdb) b function([TAB]  # show me the overloads, please.
 <_all_ symbols in the program are shown...>

E.g., when debugging GDB, that'd be:

 (gdb) b function([TAB]
 (anonymous namespace)::get_global()::global  pt_insn_get_offset@plt                       scm_new_port_table_entry
 asprintf                                     pt_pkt_alloc_decoder                         scm_new_port_table_entry@plt
 asprintf@plt                                 pt_pkt_alloc_decoder@plt                     scm_out_of_range
 bt_ctf_get_char_array                        pt_pkt_sync_forward                          scm_out_of_range@plt
 bt_ctf_get_char_array@plt                    pt_pkt_sync_forward@plt                      scm_putc
 bt_ctf_get_uint64                            pwrite                                       scm_putc@plt
 bt_ctf_get_uint64@plt                        pwrite@plt                                   scm_reverse_x
 bt_ctf_iter_read_event                       PyErr_Restore                                scm_reverse_x@plt
 bt_ctf_iter_read_event@plt                   PyErr_Restore@plt                            scm_set_port_filename_x
 <snip...>

Now that's a load of completely useless completions.

To get around that limitation, users need to quote the function name,
like:

 (gdb) b 'function([TAB]
 function(int)      function(long)
 (gdb) b 'function(i[TAB]
 (gdb) b 'function(int)' # now completes correctly!

Note that the quoting is only necessary for completion.  Creating the
breakpoint does not require the quoting:

 (gdb) b function(int) [RET]
 Breakpoint 1 at ....

This series eliminates the need for quoting, in both the explicit
locations completer, and the linespec completer.  Actually, the series
adds a real linespec completer because we didn't have a real one.

In the case above, we want the completer to figure out that it's
completing a function name that starts with "function(i".  It now
does.

On top of all that, the series fixes setting breakpoints on symbols
with [abi:cxx11] tags, and more...

Pedro Alves (40):
  Make gdb.base/dmsym.exp independent of "set language ada"
  Eliminate make_cleanup_obstack_free, introduce auto_obstack
  Fix gdb.base/completion.exp with --target_board=dwarf4-gdb-index
  Fix TAB-completion + .gdb_index slowness (generalize
    filename_seen_cache)
  command.h: Include scoped_restore_command.h
  Expression completer should not match explicit location options
  objfile_per_bfd_storage non-POD
  completion_list_add_name wrapper functions
  Rename make_symbol_completion_list_fn -> symbol_completer
  Clean up "completer_handle_brkchars" callback handling
  Introduce class completion_tracker & rewrite completion<->readline
    interaction
  "complete" command and completion word break characters
  Introduce strncmp_iw
  Introduce CP_OPERATOR_STR/CP_OPERATOR_LEN and use throughout
  Rewrite/enhance explicit locations completer, parse left->right
  Explicit locations -label completer
  Linespec lexing and C++ operators
  A smarter linespec completer
  Fix cp_find_first_component_aux bug
  Eliminate block_iter_name_*
  Use SYMBOL_MATCHES_SEARCH_NAME some more
  get_int_var_value
  Make language_def O(1)
  Per-language symbol name hashing algorithm
  Introduce lookup_name_info and generalize Ada's FULL/WILD name
    matching
  Optimize .gdb_index symbol name searching
  Make cp_remove_params return a unique_ptr
  lookup_name_info::make_ignore_params
  Simplify completion_list_add_name | remove sym_text / sym_text_len
  Use search_domain::FUNCTIONS_DOMAIN when setting breakpoints
  Handle custom completion match prefix / LCD
  Make "break foo" find "A::foo", A::B::foo", etc. [C++ and wild
    matching]
  Make the linespec/location completer ignore data symbols
  Make strcmp_iw NOT ignore whitespace in the middle of tokens
  Comprehensive C++ linespec/completer tests
  Add comprehensive C++ operator linespec/location/completion tests
  Fix completing an empty string
  Use TOLOWER in SYMBOL_HASH_NEXT
  Breakpoints in symbols with ABI tags (PR c++/19436)
  Document breakpoints / linespec & co improvements (manual + NEWS)

 gdb/doc/gdb.texinfo                            |   26 +
 gdb/NEWS                                       |   36 +
 gdb/Makefile.in                                |    3 +
 gdb/ada-lang.c                                 |  786 +++++------
 gdb/ada-lang.h                                 |    2 +-
 gdb/ada-lex.l                                  |   22 +-
 gdb/ada-typeprint.c                            |    4 +-
 gdb/block.c                                    |  107 +-
 gdb/block.h                                    |   51 +-
 gdb/break-catch-syscall.c                      |   25 +-
 gdb/breakpoint.c                               |   23 +-
 gdb/buildsym.c                                 |   25 +-
 gdb/buildsym.h                                 |    4 +-
 gdb/c-exp.y                                    |   20 +-
 gdb/c-lang.c                                   |   46 +-
 gdb/c-typeprint.c                              |    2 +-
 gdb/cli/cli-cmds.c                             |   87 +-
 gdb/cli/cli-decode.c                           |   41 +-
 gdb/cli/cli-decode.h                           |   17 +-
 gdb/coffread.c                                 |    4 +-
 gdb/command.h                                  |   35 +-
 gdb/completer.c                                | 1786 +++++++++++++++++-------
 gdb/completer.h                                |  547 ++++++--
 gdb/corefile.c                                 |    5 +-
 gdb/cp-abi.c                                   |    5 +-
 gdb/cp-support.c                               |  588 +++++++-
 gdb/cp-support.h                               |   18 +-
 gdb/d-exp.y                                    |   11 +-
 gdb/d-lang.c                                   |    9 +-
 gdb/dbxread.c                                  |   12 +-
 gdb/defs.h                                     |    3 +-
 gdb/dictionary.c                               |  111 +-
 gdb/dictionary.h                               |   36 +-
 gdb/disasm.c                                   |    6 +-
 gdb/dwarf2loc.c                                |    7 +-
 gdb/dwarf2read.c                               |  919 ++++++++++--
 gdb/f-lang.c                                   |   22 +-
 gdb/filename-seen-cache.c                      |   73 +
 gdb/filename-seen-cache.h                      |   64 +
 gdb/gdb_obstack.h                              |   15 +
 gdb/gnu-v2-abi.c                               |    2 +-
 gdb/gnu-v3-abi.c                               |    2 +-
 gdb/go-exp.y                                   |    9 +-
 gdb/go-lang.c                                  |    9 +-
 gdb/guile/scm-cmd.c                            |   40 +-
 gdb/infrun.c                                   |   13 +-
 gdb/interps.c                                  |    8 +-
 gdb/interps.h                                  |    7 +-
 gdb/jit.c                                      |    6 +-
 gdb/language.c                                 |  301 ++--
 gdb/language.h                                 |   90 +-
 gdb/linespec.c                                 | 1074 ++++++++++++--
 gdb/linespec.h                                 |   29 +
 gdb/linux-tdep.c                               |    7 +-
 gdb/location.c                                 |  326 ++++-
 gdb/location.h                                 |   32 +-
 gdb/m2-lang.c                                  |    9 +-
 gdb/mdebugread.c                               |   23 +-
 gdb/minsyms.c                                  |  371 +++--
 gdb/minsyms.h                                  |    4 +-
 gdb/objc-lang.c                                |    8 +-
 gdb/objfiles.c                                 |   15 +-
 gdb/objfiles.h                                 |   39 +-
 gdb/opencl-lang.c                              |    8 +-
 gdb/p-lang.c                                   |   16 +-
 gdb/printcmd.c                                 |   12 +-
 gdb/psymtab.c                                  |  129 +-
 gdb/python/py-cmd.c                            |   52 +-
 gdb/rust-exp.y                                 |   15 +-
 gdb/rust-lang.c                                |   15 +-
 gdb/stabsread.h                                |    3 +-
 gdb/stack.c                                    |   18 +-
 gdb/symfile-debug.c                            |    6 +-
 gdb/symfile.c                                  |    4 +-
 gdb/symfile.h                                  |    4 +-
 gdb/symmisc.c                                  |    1 +
 gdb/symtab.c                                   |  704 +++++-----
 gdb/symtab.h                                   |  366 ++++-
 gdb/testsuite/gdb.ada/complete.exp             |   10 +
 gdb/testsuite/gdb.base/complete-empty.exp      |   46 +
 gdb/testsuite/gdb.base/completion.exp          |    8 +-
 gdb/testsuite/gdb.base/default.exp             |    2 +-
 gdb/testsuite/gdb.base/dmsym.c                 |    8 +-
 gdb/testsuite/gdb.base/dmsym.exp               |   39 +-
 gdb/testsuite/gdb.base/dmsym_main.c            |   10 +-
 gdb/testsuite/gdb.base/langs.exp               |    2 +-
 gdb/testsuite/gdb.base/printcmds.exp           |    6 +
 gdb/testsuite/gdb.cp/meth-typedefs.exp         |   34 +-
 gdb/testsuite/gdb.cp/namespace.exp             |    2 +-
 gdb/testsuite/gdb.linespec/base/one/thefile.cc |    5 +
 gdb/testsuite/gdb.linespec/base/two/thefile.cc |    5 +
 gdb/testsuite/gdb.linespec/cpcompletion.exp    |  959 +++++++++++++
 gdb/testsuite/gdb.linespec/cpls-abi-tag.cc     |   93 ++
 gdb/testsuite/gdb.linespec/cpls-abi-tag.exp    |  312 +++++
 gdb/testsuite/gdb.linespec/cpls-hyphen.cc      |   14 +
 gdb/testsuite/gdb.linespec/cpls-ops.cc         |  253 ++++
 gdb/testsuite/gdb.linespec/cpls-ops.exp        |  567 ++++++++
 gdb/testsuite/gdb.linespec/cpls.cc             |  386 +++++
 gdb/testsuite/gdb.linespec/cpls2.cc            |   46 +
 gdb/testsuite/gdb.linespec/explicit.exp        |  209 ++-
 gdb/testsuite/gdb.linespec/linespec.exp        |   93 +-
 gdb/testsuite/gdb.linespec/ls-errs.exp         |   27 +-
 gdb/testsuite/lib/completion-support.exp       |  513 +++++++
 gdb/top.c                                      |    2 +-
 gdb/tui/tui-layout.c                           |    5 +-
 gdb/tui/tui-regs.c                             |   11 +-
 gdb/tui/tui-win.c                              |   28 +-
 gdb/unittests/lookup_name_info-selftests.c     |  110 ++
 gdb/utils.c                                    |  382 ++++-
 gdb/utils.h                                    |   49 +-
 gdb/valprint.c                                 |   17 +-
 gdb/value.c                                    |   17 +-
 gdb/value.h                                    |    3 +-
 gdb/xcoffread.c                                |   11 +-
 114 files changed, 10826 insertions(+), 2838 deletions(-)
 create mode 100644 gdb/filename-seen-cache.c
 create mode 100644 gdb/filename-seen-cache.h
 create mode 100644 gdb/testsuite/gdb.base/complete-empty.exp
 create mode 100644 gdb/testsuite/gdb.linespec/cpcompletion.exp
 create mode 100644 gdb/testsuite/gdb.linespec/cpls-abi-tag.cc
 create mode 100644 gdb/testsuite/gdb.linespec/cpls-abi-tag.exp
 create mode 100644 gdb/testsuite/gdb.linespec/cpls-hyphen.cc
 create mode 100644 gdb/testsuite/gdb.linespec/cpls-ops.cc
 create mode 100644 gdb/testsuite/gdb.linespec/cpls-ops.exp
 create mode 100644 gdb/testsuite/gdb.linespec/cpls.cc
 create mode 100644 gdb/testsuite/gdb.linespec/cpls2.cc
 create mode 100644 gdb/testsuite/lib/completion-support.exp
 create mode 100644 gdb/unittests/lookup_name_info-selftests.c

-- 
2.5.5

^ permalink raw reply	[flat|nested] 183+ messages in thread

end of thread, other threads:[~2018-03-05 21:43 UTC | newest]

Thread overview: 183+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-02 12:22 [PATCH 00/40] C++ debugging improvements: breakpoints, TAB completion, more Pedro Alves
2017-06-02 12:22 ` [PATCH 14/40] Introduce CP_OPERATOR_STR/CP_OPERATOR_LEN and use throughout Pedro Alves
2017-07-14 18:04   ` Keith Seitz
2017-07-17 14:55     ` Pedro Alves
2017-06-02 12:22 ` [PATCH 02/40] Eliminate make_cleanup_obstack_free, introduce auto_obstack Pedro Alves
2017-06-26 13:47   ` Yao Qi
2017-06-27 10:25     ` Pedro Alves
2017-06-28 10:36   ` Yao Qi
2017-06-28 14:39     ` Pedro Alves
2017-06-28 21:33       ` Yao Qi
2017-06-02 12:22 ` [PATCH 01/40] Make gdb.base/dmsym.exp independent of "set language ada" Pedro Alves
2017-07-18 19:42   ` Simon Marchi
2017-07-20 17:00     ` Pedro Alves
2017-06-02 12:22 ` [PATCH 06/40] Expression completer should not match explicit location options Pedro Alves
2017-06-29  8:29   ` Yao Qi
2017-06-29 10:56     ` Pedro Alves
2017-06-29 11:08       ` Pedro Alves
2017-06-29 15:23         ` Pedro Alves
2017-06-29 11:24       ` Yao Qi
2017-06-29 15:25         ` Pedro Alves
2017-06-02 12:22 ` [PATCH 03/40] Fix gdb.base/completion.exp with --target_board=dwarf4-gdb-index Pedro Alves
2017-07-13 20:28   ` Keith Seitz
2017-07-14 16:02     ` Pedro Alves
2017-06-02 12:22 ` [PATCH 08/40] completion_list_add_name wrapper functions Pedro Alves
2017-06-27 12:56   ` Yao Qi
2017-06-27 15:35     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 15/40] Rewrite/enhance explicit locations completer, parse left->right Pedro Alves
2017-07-14 20:55   ` Keith Seitz
2017-07-17 19:24     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 38/40] Use TOLOWER in SYMBOL_HASH_NEXT Pedro Alves
2017-08-09 19:25   ` Keith Seitz
2017-11-25  0:35     ` [pushed] " Pedro Alves
2017-06-02 12:23 ` [PATCH 11/40] Introduce class completion_tracker & rewrite completion<->readline interaction Pedro Alves
2017-07-14 17:23   ` Keith Seitz
2017-07-17 13:56     ` Pedro Alves
2017-07-18  8:23       ` Christophe Lyon
2017-07-18  9:04         ` Pedro Alves
2017-07-18 10:42           ` [pushed] Fix GDB builds that include the simulator (Re: [PATCH 11/40] Introduce class completion_tracker & rewrite completion<->readline interaction) Pedro Alves
2018-03-05 21:43   ` [PATCH 11/40] Introduce class completion_tracker & rewrite completion<->readline interaction Simon Marchi
2017-06-02 12:23 ` [PATCH 28/40] lookup_name_info::make_ignore_params Pedro Alves
2017-08-08 20:55   ` Keith Seitz
2017-11-08 16:18     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 39/40] Breakpoints in symbols with ABI tags (PR c++/19436) Pedro Alves
2017-08-09 19:34   ` Keith Seitz
2017-11-27 17:14     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 27/40] Make cp_remove_params return a unique_ptr Pedro Alves
2017-08-08 20:35   ` Keith Seitz
2017-10-09 15:13     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 18/40] A smarter linespec completer Pedro Alves
2017-07-15  0:07   ` Keith Seitz
2017-07-17 18:21     ` Pedro Alves
2017-07-17 19:02       ` Keith Seitz
2017-07-17 19:33         ` Pedro Alves
2017-06-02 12:23 ` [PATCH 35/40] Comprehensive C++ linespec/completer tests Pedro Alves
2017-08-09 17:30   ` Keith Seitz
2017-11-24 16:25     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 19/40] Fix cp_find_first_component_aux bug Pedro Alves
2017-07-17 19:17   ` Keith Seitz
2017-07-17 19:50     ` Pedro Alves
2017-07-17 21:38       ` Keith Seitz
2017-07-20 17:03         ` Pedro Alves
2017-06-02 12:23 ` [PATCH 13/40] Introduce strncmp_iw Pedro Alves
2017-06-29  8:42   ` Yao Qi
2017-07-17 19:16     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 10/40] Clean up "completer_handle_brkchars" callback handling Pedro Alves
2017-07-13 21:08   ` Keith Seitz
2017-07-17 11:14     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 09/40] Rename make_symbol_completion_list_fn -> symbol_completer Pedro Alves
2017-06-28 21:40   ` Yao Qi
2017-07-13 20:46   ` Keith Seitz
2017-07-17 11:00     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 34/40] Make strcmp_iw NOT ignore whitespace in the middle of tokens Pedro Alves
2017-08-09 15:48   ` Keith Seitz
2017-11-24 23:38     ` [pushed] " Pedro Alves
2017-06-02 12:23 ` [PATCH 37/40] Fix completing an empty string Pedro Alves
2017-08-09 18:01   ` Keith Seitz
2017-11-25  0:28     ` Pedro Alves
2017-06-02 12:23 ` [PATCH 40/40] Document breakpoints / linespec & co improvements (manual + NEWS) Pedro Alves
2017-06-02 13:01   ` Eli Zaretskii
2017-06-02 13:33     ` Pedro Alves
2017-06-21 15:50       ` Pedro Alves
2017-06-21 19:14         ` Pedro Alves
2017-06-22 19:45           ` Eli Zaretskii
2017-06-22 19:42         ` Eli Zaretskii
2017-06-21 13:32     ` Pedro Alves
2017-06-21 18:26       ` Eli Zaretskii
2017-06-21 19:01         ` Pedro Alves
2017-06-22 19:43           ` Eli Zaretskii
2017-06-02 12:23 ` [PATCH 36/40] Add comprehensive C++ operator linespec/location/completion tests Pedro Alves
2017-08-09 17:59   ` Keith Seitz
2017-11-25  0:18     ` [pushed] " Pedro Alves
2017-11-30 15:43       ` Yao Qi
2017-11-30 16:06         ` Pedro Alves
2017-11-30 16:35           ` [pushed] Fix gdb.linespec/cpls-ops.exp on 32-bit (Re: [pushed] Re: [PATCH 36/40] Add comprehensive C++ operator linespec/location/completion tests) Pedro Alves
2017-06-02 12:28 ` [PATCH 24/40] Per-language symbol name hashing algorithm Pedro Alves
2017-07-18 17:33   ` Keith Seitz
2017-07-20 18:53     ` Pedro Alves
2017-11-08 16:08       ` Pedro Alves
2017-06-02 12:29 ` [PATCH 16/40] Explicit locations -label completer Pedro Alves
2017-07-14 21:32   ` Keith Seitz
2017-06-02 12:29 ` [PATCH 33/40] Make the linespec/location completer ignore data symbols Pedro Alves
2017-08-09 15:42   ` Keith Seitz
2017-11-08 16:22     ` Pedro Alves
2017-06-02 12:29 ` [PATCH 21/40] Use SYMBOL_MATCHES_SEARCH_NAME some more Pedro Alves
2017-07-17 21:39   ` Keith Seitz
2017-07-20 17:08     ` Pedro Alves
2017-06-02 12:29 ` [PATCH 07/40] objfile_per_bfd_storage non-POD Pedro Alves
2017-06-27 12:00   ` Yao Qi
2017-06-27 15:30     ` Pedro Alves
2017-06-02 12:29 ` [PATCH 12/40] "complete" command and completion word break characters Pedro Alves
2017-07-14 17:50   ` Keith Seitz
2017-07-17 14:36     ` Pedro Alves
2017-06-02 12:29 ` [PATCH 05/40] command.h: Include scoped_restore_command.h Pedro Alves
2017-06-27 11:30   ` Yao Qi
2017-06-27 11:45     ` Pedro Alves
2017-06-27 11:52       ` Pedro Alves
2017-06-27 12:03         ` Pedro Alves
2017-06-27 15:46           ` [PATCH 05/40] command.h: Include common/scoped_restore.h Pedro Alves
2017-06-28  7:54             ` Yao Qi
2017-06-28 14:20               ` Pedro Alves
2017-06-02 12:29 ` [PATCH 17/40] Linespec lexing and C++ operators Pedro Alves
2017-07-14 21:45   ` Keith Seitz
2017-07-17 19:34     ` Pedro Alves
2017-06-02 12:30 ` [PATCH 20/40] Eliminate block_iter_name_* Pedro Alves
2017-07-17 19:47   ` Keith Seitz
2017-07-20 17:05     ` Pedro Alves
2017-06-02 12:30 ` [PATCH 32/40] Make "break foo" find "A::foo", A::B::foo", etc. [C++ and wild matching] Pedro Alves
2017-08-08 23:48   ` Keith Seitz
2017-11-22 16:48     ` Pedro Alves
2017-11-24 16:48       ` Pedro Alves
2017-11-24 16:57         ` Pedro Alves
2017-11-28  0:39         ` Keith Seitz
2017-11-28  0:02       ` Keith Seitz
2017-11-28  0:21         ` Pedro Alves
2017-11-28  0:42           ` Keith Seitz
2017-06-02 12:30 ` [PATCH 30/40] Use search_domain::FUNCTIONS_DOMAIN when setting breakpoints Pedro Alves
2017-08-08 21:07   ` Keith Seitz
2017-11-08 16:20     ` Pedro Alves
2017-06-02 12:31 ` [PATCH 29/40] Simplify completion_list_add_name | remove sym_text / sym_text_len Pedro Alves
2017-08-08 20:59   ` Keith Seitz
2017-11-08 16:19     ` Pedro Alves
2017-06-02 12:31 ` [PATCH 22/40] get_int_var_value Pedro Alves
2017-07-17 22:11   ` Keith Seitz
2017-07-20 17:15     ` Pedro Alves
2017-06-02 12:31 ` [PATCH 04/40] Fix TAB-completion + .gdb_index slowness (generalize filename_seen_cache) Pedro Alves
2017-07-13 20:41   ` Keith Seitz
2017-07-14 19:40     ` Pedro Alves
2017-07-17 10:51       ` Pedro Alves
2017-06-02 12:33 ` [PATCH 31/40] Handle custom completion match prefix / LCD Pedro Alves
2017-08-08 21:28   ` Keith Seitz
2017-11-27 17:11     ` Pedro Alves
2017-06-02 12:39 ` [PATCH 26/40] Optimize .gdb_index symbol name searching Pedro Alves
2017-08-08 20:32   ` Keith Seitz
2017-11-08 16:14     ` Pedro Alves
2017-11-08 16:16       ` [pushed] Reorder/reindent dw2_expand_symtabs_matching & friends (Re: [PATCH 26/40] Optimize .gdb_index symbol name searching) Pedro Alves
2017-11-18  5:23   ` [PATCH 26/40] Optimize .gdb_index symbol name searching Simon Marchi
2017-11-20  0:33     ` Pedro Alves
2017-11-20  0:42       ` [PATCH 2/3] Unit test name-component bounds searching directly Pedro Alves
2017-11-20  3:16         ` Simon Marchi
2017-11-20 14:17           ` Pedro Alves
2017-11-20  0:42       ` [PATCH 3/3] Fix mapped_index::find_name_components_bounds upper bound computation Pedro Alves
2017-11-20  3:17         ` Simon Marchi
2017-11-20  0:42       ` [PATCH 1/3] 0xff chars in name components table; cp-name-parser lex UTF-8 identifiers Pedro Alves
2017-11-20  1:38         ` Simon Marchi
2017-11-20 11:56           ` Pedro Alves
2017-11-20 16:50             ` Simon Marchi
2017-11-21  0:11               ` Pedro Alves
2017-06-02 12:39 ` [PATCH 23/40] Make language_def O(1) Pedro Alves
2017-07-17 23:03   ` Keith Seitz
2017-07-20 17:40     ` Pedro Alves
2017-07-20 18:12       ` Get rid of "set language local"? (was: Re: [PATCH 23/40] Make language_def O(1)) Pedro Alves
2017-07-20 23:44         ` Matt Rice
2017-06-02 12:39 ` [PATCH 25/40] Introduce lookup_name_info and generalize Ada's FULL/WILD name matching Pedro Alves
2017-07-18 20:14   ` Keith Seitz
2017-07-18 22:31     ` Pedro Alves
2017-07-20 19:00       ` Pedro Alves
2017-07-20 19:06         ` Pedro Alves
2017-08-08 20:29           ` Keith Seitz
2017-10-19 17:36             ` Pedro Alves
2017-11-01 15:38               ` Joel Brobecker
2017-11-08 16:10                 ` Pedro Alves
2017-11-08 22:15                   ` Joel Brobecker
2017-06-02 15:26 ` [PATCH 00/40] C++ debugging improvements: breakpoints, TAB completion, more Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).