Add interface for JIT code generation.

* NEWS: Announce JIT interface.
	* Makefile.in (SFILES): Add jit.c.
	(HFILES_NO_SRCDIR): Add jit.h.
	(COMMON_OBS): Add jit.o.
	* jit.c: New file.
	* jit.h: New file.
	* breakpoint.h (enum bptype): Add bp_jit_event to enum.
	* breakpoint.c:
	(update_breakpoints_after_exec): Delete jit breakpoints after exec.
	(bpstat_what): Update event table for bp_jit_event.
	(print_it_typical): Added case for bp_jit_event.
	(print_one_breakpoint_location): Added case for bp_jit_event.
	(allocate_bp_location): Added case for bp_jit_event.
	(mention): Added case for bp_jit_event.
	(delete_command): Added case for bp_jit_event.
	(breakpoint_re_set_one): Added case for bp_jit_event.
	(breakpoint_re_set): Added call to jit_inferior_created_hook.
	(create_jit_event_breakpoint): New.
	* infrun.c (handle_inferior_event): Add handler for jit event.
	(follow_exec): Add call to jit_inferior_created_hook.
	* doc/gdb.texinfo: Add chapter on JIT interface.
This commit is contained in:
Doug Evans
2009-08-20 18:02:48 +00:00
parent c469dcaa81
commit 4efc650796
10 changed files with 769 additions and 31 deletions

View File

@@ -120,6 +120,9 @@ enum bptype
bp_catchpoint,
bp_tracepoint,
/* Event for JIT compiled code generation or deletion. */
bp_jit_event,
};
/* States of enablement of breakpoint. */
@@ -554,6 +557,9 @@ enum bpstat_what_main_action
keep checking. */
BPSTAT_WHAT_CHECK_SHLIBS,
/* Check for new JITed code. */
BPSTAT_WHAT_CHECK_JIT,
/* This is just used to keep track of how many enums there are. */
BPSTAT_WHAT_LAST
};
@@ -865,6 +871,9 @@ extern void mark_breakpoints_out (void);
extern void make_breakpoint_permanent (struct breakpoint *);
extern struct breakpoint *create_jit_event_breakpoint (struct gdbarch *,
CORE_ADDR);
extern struct breakpoint *create_solib_event_breakpoint (struct gdbarch *,
CORE_ADDR);