/*
* call-seq:
* context.stop_reason -> sym
*
* Returns the reason for the stop. It maybe of the following values:
* :initial, :step, :breakpoint, :catchpoint, :post-mortem
*/
static VALUE
context_stop_reason(VALUE self)
{
debug_context_t *debug_context;
char * sym_name;
debug_check_started();
Data_Get_Struct(self, debug_context_t, debug_context);
switch(debug_context->stop_reason)
{
case CTX_STOP_STEP:
sym_name = "step";
break;
case CTX_STOP_BREAKPOINT:
sym_name = "breakpoint";
break;
case CTX_STOP_CATCHPOINT:
sym_name = "catchpoint";
break;
case CTX_STOP_NONE:
default:
sym_name = "none";
}
if(CTX_FL_TEST(debug_context, CTX_FL_DEAD))
sym_name = "post-mortem";
return ID2SYM(rb_intern(sym_name));
}