コード例 #1
0
ファイル: d-dump.c プロジェクト: RamchandraApte/rebol
*/	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
}
コード例 #2
0
ファイル: d-dump.c プロジェクト: BrianHawley/rebol
*/	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;
	}
}