]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Incremental breakpoint_re_set for linespec
authorPedro Alves <palves@redhat.com>
Fri, 1 Apr 2016 15:06:18 +0000 (16:06 +0100)
committerPedro Alves <palves@redhat.com>
Mon, 19 Sep 2016 14:44:42 +0000 (15:44 +0100)
commit2c1994ee331282d510f0f843a2ad67a428ce02e8
tree75842e900f025d3f980ada469713aa51f534aca1
parent31ac74b0b3301d396b3039d869a17c620c1cb552
Incremental breakpoint_re_set for linespec

When you have a pending breakpoint, the next bottleneck is
breakpoint_re_set again.

  $ time $g --batch -q -ex "run" -ex "c" -iex "set breakpoint pending on" -iex "b mainasdfasdf" --args ./testsuite/outputs/gdb.base/jit/jit-main   ./testsuite/outputs/gdb.base/jit/jit-solib.so 8000
  No symbol table is loaded.  Use the "file" command.
  Breakpoint 1 (mainasdfasdf) pending.
  /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.base/jit-main.c:164: libname = ./testsuite/outputs/gdb.base/jit/jit-solib.so, count = 8000
  [Inferior 1 (process 25753) exited normally]
  The program is not being run.

  real    0m31.738s
  user    0m29.221s
  sys     0m2.827s

This implement per-objfile re-set for linespece-based breakpoints.

- Hoist out plt locations when we find other breakpoint locations

It's what the linespec code does if we let it look up in the whole
program space.

- Check that the sals the linespec code returns match the search scope

- Address locations always use a program_space-wide search scope

- Fix exception.exp - we may only find the probe interface after seeing __cxa_begin_catch on other objfiles

- validate_sals
gdb/ada-lang.c
gdb/break-catch-throw.c
gdb/breakpoint.c
gdb/breakpoint.h
gdb/elfread.c
gdb/linespec.c
gdb/linespec.h
gdb/symtab.h