hit_condition= (Debugger::Breakpoint)

    /*
     *   call-seq:
     *      breakpoint.hit_condition = symbol
     *
     *   Sets the hit condition of the breakpoint which must be one of the following values:
     *
     *   +nil+ if it is an unconditional breakpoint, or
     *   :greater_or_equal(:ge), :equal(:eq), :modulo(:mod)
     */
    static VALUE
    breakpoint_set_hit_condition(VALUE self, VALUE value)
    {
        debug_breakpoint_t *breakpoint;
        ID id_value;

        Data_Get_Struct(self, debug_breakpoint_t, breakpoint);
        id_value = rb_to_id(value);

        if(rb_intern("greater_or_equal") == id_value || rb_intern("ge") == id_value)
            breakpoint->hit_condition = HIT_COND_GE;
        else if(rb_intern("equal") == id_value || rb_intern("eq") == id_value)
            breakpoint->hit_condition = HIT_COND_EQ;
        else if(rb_intern("modulo") == id_value || rb_intern("mod") == id_value)
            breakpoint->hit_condition = HIT_COND_MOD;
        else
            rb_raise(rb_eArgError, "Invalid condition parameter");
        return value;
    }