#include "nextstep-nat-cfmthread.h" #include "defs.h" #include "gdbcmd.h" #include "breakpoint.h" static CORE_ADDR lookup_address (const char *s) { struct minimal_symbol *msym; msym = lookup_minimal_symbol (s, NULL, NULL); if (msym == NULL) { error ("unable to locate symbol \"%s\"", s); } return SYMBOL_VALUE_ADDRESS (msym); } void next_cfm_thread_init (next_cfm_thread_status *s) { s->notify_debugger = 0; s->info_api_cookie = 0; } void next_cfm_thread_create (next_cfm_thread_status *s, task_t task) { struct breakpoint *b; struct symtab_and_line sal; char buf[64]; snprintf (buf, 64, "PrepareClosure + %u", s->breakpoint_offset); s->notify_debugger = lookup_address ("PrepareClosure") + s->breakpoint_offset; INIT_SAL (&sal); sal.pc = s->notify_debugger; b = set_momentary_breakpoint (sal, NULL, bp_shlib_event); b->disposition = disp_donttouch; b->thread = -1; b->addr_string = strsave (buf); breakpoints_changed (); } void next_cfm_thread_destroy (next_cfm_thread_status *s) { s->notify_debugger = 0; s->info_api_cookie = 0; } void _initialize_nextstep_nat_cfmthread () { }