예제 #1
0
/*
 * Examine (print) data.
 */
void
db_examine_cmd(
    db_expr_t	addr,
    int		have_addr,
    db_expr_t	count,
    char *		modif)
{
    thread_act_t	thr_act;
    extern char	db_last_modifier[];

    if (modif[0] != '\0')
        strcpy(db_examine_format, modif);

    if (count == -1)
        count = 1;
    db_examine_count = count;
    if (db_option(modif, 't')) {
        if (modif == db_last_modifier)
            thr_act = db_examine_act;
        else if (!db_get_next_act(&thr_act, 0))
            return;
    } else if (db_option(modif,'u'))
        thr_act = current_act();
    else
        thr_act = THR_ACT_NULL;

    db_examine_act = thr_act;
    db_examine((db_addr_t) addr, db_examine_format, count,
               db_act_to_task(thr_act));
}
예제 #2
0
void
db_examine_forward(
    db_expr_t	addr,
    int		have_addr,
    db_expr_t	count,
    char *		modif)
{
    db_examine(db_next, db_examine_format, db_examine_count,
               db_act_to_task(db_examine_act));
}
예제 #3
0
/*ARGSUSED*/
void
db_examine_cmd(db_expr_t addr, int have_addr, db_expr_t count, char *modif)
{
	if (modif[0] != '\0')
		db_strlcpy(db_examine_format, modif, sizeof(db_examine_format));

	if (count == -1)
		count = 1;

	db_examine((db_addr_t)addr, db_examine_format, count);
}
예제 #4
0
void
db_examine_backward(
    db_expr_t	addr,
    int		have_addr,
    db_expr_t	count,
    char *		modif)
{
    db_examine(db_examine_prev_addr - (db_next - db_examine_prev_addr),
               db_examine_format, db_examine_count,
               db_act_to_task(db_examine_act));
}