forked from Imagelibrary/binutils-gdb
Fix JIT clang-lli regression (unable to read JIT descriptor from memory)
2011-07-06 Paul Pluzhnikov <ppluzhnikov@google.com> * jit.c (jit_inferior_init): Forward declare. (jit_breakpoint_re_set_internal): Call jit_inferior_init. testsuite/ChangeLog: 2011-07-06 Paul Pluzhnikov <ppluzhnikov@google.com> * gdb.base/jit-so.exp: New test. * gdb.base/jit-dlmain.c: New file. * gdb.base/jit-main.c: Allow "main" to be elsewhere.
This commit is contained in:
@@ -40,6 +40,9 @@ static const char *const jit_descriptor_name = "__jit_debug_descriptor";
|
||||
|
||||
static const struct inferior_data *jit_inferior_data = NULL;
|
||||
|
||||
static void
|
||||
jit_inferior_init (struct gdbarch *gdbarch);
|
||||
|
||||
/* Non-zero if we want to see trace of jit level stuff. */
|
||||
|
||||
static int jit_debug = 0;
|
||||
@@ -351,6 +354,11 @@ jit_breakpoint_re_set_internal (struct gdbarch *gdbarch,
|
||||
inf_data->breakpoint_addr = SYMBOL_VALUE_ADDRESS (reg_symbol);
|
||||
if (inf_data->breakpoint_addr == 0)
|
||||
return 2;
|
||||
|
||||
/* If we have not read the jit descriptor yet (e.g. because the JITer
|
||||
itself is in a shared library which just got loaded), do so now. */
|
||||
if (inf_data->descriptor_addr == 0)
|
||||
jit_inferior_init (gdbarch);
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user