Exemple #1
0
*/	void Dump_Values(REBVAL *vp, REBCNT count)
/*
**		Dump raw values into a string buffer;
**
***********************************************************************/
{
	REBYTE buf[2048];
	REBYTE *cp;
	REBCNT l, n;
	REBCNT *bp = (REBCNT*)vp;

	cp = buf;
	for (l = 0; l < count; l++) {
		cp = Form_Hex_Pad(cp, (REBCNT) bp, 8);

		*cp++ = ':';
		*cp++ = ' ';

		for (n = 0; n < 4; n++) {
			cp = Form_Hex_Pad(cp, *bp++, 8);
			*cp++ = ' ';
		}

		*cp++ = '\n';
		if ((cp - buf) >= 2040) break;
	}
	*cp++ = 0;
	Debug_Str(buf);
}
Exemple #2
0
*/	void Dump_Values(REBVAL *vp, REBCNT count)
/*
**		Print out values in raw hex; If memory is corrupted
**		this function still needs to work.
**
***********************************************************************/
{
	REBYTE buf[2048];
	REBYTE *cp;
	REBCNT l, n;
	REBCNT *bp = (REBCNT*)vp;
	REBYTE *type;

	cp = buf;
	for (l = 0; l < count; l++) {
		cp = Form_Hex_Pad(cp, (REBCNT) l, 4);
		*cp++ = ':';
		*cp++ = ' ';

		type = Get_Type_Name((REBVAL*)bp);
		for (n = 0; n < 11; n++) {
			if (*type) *cp++ = *type++;
			else *cp++ = ' ';
		}
		*cp++ = ' ';
		for (n = 0; n < 4; n++) {
			cp = Form_Hex_Pad(cp, *bp++, 8);
			*cp++ = ' ';
		}

		*cp = 0;
		Debug_Str(buf);
		cp = buf;
	}
}
Exemple #3
0
//
//  Dump_Values: C
// 
// Print values in raw hex; If memory is corrupted this still needs to work.
//
void Dump_Values(RELVAL *vp, REBCNT count)
{
    REBYTE buf[2048];
    REBYTE *cp;
    REBCNT l, n;
    REBCNT *bp = (REBCNT*)vp;
    const REBYTE *type;

    cp = buf;
    for (l = 0; l < count; l++) {
        REBVAL *val = cast(REBVAL*, bp);
        cp = Form_Hex_Pad(cp, l, 8);

        *cp++ = ':';
        *cp++ = ' ';

        type = Get_Type_Name((REBVAL*)bp);
        for (n = 0; n < 11; n++) {
            if (*type) *cp++ = *type++;
            else *cp++ = ' ';
        }
        *cp++ = ' ';
        for (n = 0; n < sizeof(REBVAL) / sizeof(REBCNT); n++) {
            cp = Form_Hex_Pad(cp, *bp++, 8);
            *cp++ = ' ';
        }
        n = 0;
        if (IS_WORD(val) || IS_GET_WORD(val) || IS_SET_WORD(val)) {
            const REBYTE *name = STR_HEAD(VAL_WORD_SPELLING(val));
            n = snprintf(
                s_cast(cp), sizeof(buf) - (cp - buf), " (%s)", cs_cast(name)
            );
        }

        *(cp + n) = 0;
        Debug_Str(s_cast(buf));
        cp = buf;
    }
}
Exemple #4
0
*/	void Dump_Bytes(REBYTE *bp, REBCNT limit)
/*
**		Dump memory into a string buffer;
**
***********************************************************************/
{
#ifdef _DEBUG
	REBYTE buf[20480];
	REBYTE str[40];
	REBYTE *cp, *tp;
	REBYTE c;
	REBCNT l, n;
	REBCNT cnt = 0;

	cp = buf;
	for (l = 0; l < 150; l++) {
		cp = Form_Hex_Pad(cp, (REBCNT) bp, 8);

		*cp++ = ':';
		*cp++ = ' ';
		tp = str;

		for (n = 0; n < 16; n++) {
			if (cnt++ >= limit) break;
			c = *bp++;
			cp = Form_Hex2(cp, c);
			if ((n & 3) == 3) *cp++ = ' ';
			if ((c < 32) || (c > 126)) c = '.';
			*tp++ = c;
		}

		for (; n < 16; n++) {
			c = ' ';
			*cp++ = c;
			*cp++ = c;
			if ((n & 3) == 3) *cp++ = ' ';
			if ((c < 32) || (c > 126)) c = '.';
			*tp++ = c;
		}
		*tp++ = 0;

		for (tp = str; *tp;) *cp++ = *tp++;
		*cp++ = '\n';
		if (cnt >= limit) break;
	}
	*cp++ = 0;
	Debug_Str(buf);
#endif
}
Exemple #5
0
*/	void Dump_Bytes(REBYTE *bp, REBCNT limit)
/*
***********************************************************************/
{
	const max_lines = 120;
	REBYTE buf[2048];
	REBYTE str[40];
	REBYTE *cp, *tp;
	REBYTE c;
	REBCNT l, n;
	REBCNT cnt = 0;

	cp = buf;
	for (l = 0; l < max_lines; l++) {
		cp = Form_Hex_Pad(cp, (REBCNT) bp, 8);

		*cp++ = ':';
		*cp++ = ' ';
		tp = str;

		for (n = 0; n < 16; n++) {
			if (cnt++ >= limit) break;
			c = *bp++;
			cp = Form_Hex2(cp, c);
			if ((n & 3) == 3) *cp++ = ' ';
			if ((c < 32) || (c > 126)) c = '.';
			*tp++ = c;
		}

		for (; n < 16; n++) {
			c = ' ';
			*cp++ = c;
			*cp++ = c;
			if ((n & 3) == 3) *cp++ = ' ';
			if ((c < 32) || (c > 126)) c = '.';
			*tp++ = c;
		}
		*tp++ = 0;

		for (tp = str; *tp;) *cp++ = *tp++;

		*cp = 0;
		Debug_Str(buf);
		if (cnt >= limit) break;
		cp = buf;
	}
}