Fix PR gdb/19858: GDB doesn't register the JIT libraries on attach
authorYichao Yu <yyc1992@gmail.com>
Thu, 31 Mar 2016 18:28:47 +0000 (19:28 +0100)
committerPedro Alves <palves@redhat.com>
Thu, 31 Mar 2016 18:28:47 +0000 (19:28 +0100)
commit9bb84c9f97cb81df81f18f4e47d6b24fa37b597c
tree2d36219dd5da021dd6643786e49ff03180a37b96
parent22084c425e69ca2f3ce92d88c0bf746b48d3627c
Fix PR gdb/19858: GDB doesn't register the JIT libraries on attach

Ref: https://sourceware.org/ml/gdb/2016-03/msg00023.html

GDB currently fails to fetch the list of already-registered JIT
modules on attach.

Nothing is calling jit_inferior_init, which is what is responsible for
walking the JIT object list at init time.

Despite the misleading naming, jit_inferior_created_hook ->
jit_inferior_init is only called when the inferior execs.

This regressed with the fix for PR gdb/13431 (03bef283c2d3):
 https://sourceware.org/ml/gdb-patches/2012-02/msg00023.html which
removed the inferior_created (jit_inferior_created_observer)
observer.

Adding an inferior_created observer back fixes the issue.

In turn, this exposes a bug in jit_breakpoint_re_set_internal as well,
which is returning the wrong result when we already have the
breakpoint at the right address.

gdb/ChangeLog:
2016-03-31  Yichao Yu  <yyc1992@gmail.com>

PR gdb/19858
* jit.c (jit_breakpoint_re_set_internal): Return 0 if we already
got the breakpoint at the right address.
(jit_inferior_created): New function.
(_initialize_jit): Install jit_inferior_created as
inferior_created observer.

Signed-off-by: Pedro Alves <palves@redhat.com>
gdb/ChangeLog
gdb/jit.c