This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch 2/2] Speed up JIT support
>>>>> "Paul" == Paul Pluzhnikov <ppluzhnikov@google.com> writes:
Paul> 2010-02-03 Paul Pluzhnikov <ppluzhnikov@google.com>
Paul> * breakpoint.c (longjmp_names): New variable.
Paul> (struct breakpoint_objfile_data): New type.
Paul> (breakpoint_objfile_key): New variable.
Paul> (get_breakpoint_objfile_data): New function.
Paul> (create_overlay_event_breakpoint): Adjust.
Paul> (create_longjmp_master_breakpoint): Adjust.
Paul> (create_std_terminate_master_breakpoint): Adjust.
Paul> (create_exception_master_breakpoint): Adjust.
Paul> (_initialize_breakpoint): Adjust.
>From what I can tell, the cache is never invalidated. But, if
objfile_relocate was called, then I think the cache ought to be
invalidated, or the addresses relocated.
Maybe the cache could point to the symbols themselves. I think that
would fix the problem and be both safe and efficient.
Paul> create_exception_master_breakpoint (void)
Paul> {
Paul> struct objfile *objfile;
Paul> + const char *const func_name = "_Unwind_DebugHook";
Paul> ALL_OBJFILES (objfile)
Paul> {
I don't really know why the other functions loop over ALL_PSPACES but
this one does not. It is my fault, seeing as I wrote this... but I
still don't understand.
Tom