This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]