Now, Dump() output hex and ascii side by side.
Renamed g_IsEnabled global into a more meaningfull name. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8554 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -36,10 +36,11 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <NetDebug.h>
|
#include <NetDebug.h>
|
||||||
|
#include <SupportDefs.h>
|
||||||
|
|
||||||
|
|
||||||
// Off by default cuz the BeBook sez so.
|
// Off by default cuz the BeBook sez so.
|
||||||
static bool g_IsEnabled = false;
|
static bool g_NetDebugEnabled = false;
|
||||||
|
|
||||||
|
|
||||||
/* Enable
|
/* Enable
|
||||||
@@ -58,7 +59,7 @@ static bool g_IsEnabled = false;
|
|||||||
*/
|
*/
|
||||||
void BNetDebug::Enable( bool Enable )
|
void BNetDebug::Enable( bool Enable )
|
||||||
{
|
{
|
||||||
g_IsEnabled = Enable;
|
g_NetDebugEnabled = Enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -72,7 +73,7 @@ void BNetDebug::Enable( bool Enable )
|
|||||||
*/
|
*/
|
||||||
bool BNetDebug::IsEnabled( void )
|
bool BNetDebug::IsEnabled( void )
|
||||||
{
|
{
|
||||||
return g_IsEnabled;
|
return g_NetDebugEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -94,16 +95,14 @@ bool BNetDebug::IsEnabled( void )
|
|||||||
*/
|
*/
|
||||||
void BNetDebug::Print( const char* msg )
|
void BNetDebug::Print( const char* msg )
|
||||||
{
|
{
|
||||||
if ( g_IsEnabled )
|
if ( !g_NetDebugEnabled )
|
||||||
{
|
return;
|
||||||
|
|
||||||
if (msg == NULL)
|
if (msg == NULL)
|
||||||
{
|
msg = "(null)";
|
||||||
msg = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf( stderr, "debug: %s\n", msg );
|
fprintf( stderr, "debug: %s\n", msg );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Dump
|
/* Dump
|
||||||
@@ -140,45 +139,49 @@ void BNetDebug::Print( const char* msg )
|
|||||||
*/
|
*/
|
||||||
void BNetDebug::Dump(const char* data, size_t size, const char* title)
|
void BNetDebug::Dump(const char* data, size_t size, const char* title)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
char line[17];
|
|
||||||
|
|
||||||
if ( g_IsEnabled == false )
|
if ( ! g_NetDebugEnabled)
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
fprintf( stderr, "----------\n%s\n(dumping %d bytes)\n", title, size );
|
fprintf( stderr, "----------\n%s\n(dumping %ld bytes)\n",
|
||||||
|
title ? title : "(untitled)", size );
|
||||||
|
|
||||||
memset( line, 0, sizeof( line ) );
|
if (! data)
|
||||||
|
fprintf(stderr, "NULL data!\n");
|
||||||
|
else {
|
||||||
|
uint32 i,j;
|
||||||
|
char text[96]; // only 3*16 + 3 + 16 max by line needed
|
||||||
|
uint8 *byte = (uint8 *) data;
|
||||||
|
char *ptr;
|
||||||
|
|
||||||
while ( i < size )
|
for ( i = 0; i < size; i += 16 ) {
|
||||||
{
|
ptr = text;
|
||||||
fprintf( stderr, "%02x ", ( unsigned char )data[i] );
|
|
||||||
|
|
||||||
line[i % 16] = ( isprint( data[i] ) ) ? data[i] : '.';
|
for ( j = i; j < i+16 ; j++ ) {
|
||||||
|
if ( j < size )
|
||||||
|
sprintf(ptr, "%02x ", byte[j]);
|
||||||
|
else
|
||||||
|
sprintf(ptr, " ");
|
||||||
|
ptr += 3;
|
||||||
|
};
|
||||||
|
|
||||||
if ( ( i + 1 ) % 16 == 0 )
|
strcat(ptr, "| ");
|
||||||
{
|
ptr += 2;
|
||||||
fprintf( stderr, " | %s\n", line );
|
|
||||||
memset( line, 0, sizeof( line ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
i++;
|
for (j = i; j < size && j < i+16;j++) {
|
||||||
}
|
if ( byte[j] >= 0x20 && byte[j] < 0x7e )
|
||||||
|
*ptr = byte[j];
|
||||||
|
else
|
||||||
|
*ptr = '.';
|
||||||
|
ptr++;
|
||||||
|
};
|
||||||
|
|
||||||
if ( ( i + 1 ) % 16 != 0 )
|
ptr[0] = '\n';
|
||||||
{
|
ptr[1] = '\0';
|
||||||
while ( i % 16 != 0 )
|
fprintf(stderr, text);
|
||||||
{
|
};
|
||||||
printf( " " );
|
};
|
||||||
i++;
|
fprintf( stderr, "----------\n" );
|
||||||
}
|
|
||||||
|
|
||||||
fprintf( stderr, " | %s", line );
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf( stderr, "\n----------\n" );
|
|
||||||
fflush( stderr );
|
fflush( stderr );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user