Commit 07d681b0 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

winedump: Added helper to convert a guid to a string.

parent 1fcb0c11
...@@ -131,6 +131,15 @@ void dump_unicode_str( const WCHAR *str, int len ) ...@@ -131,6 +131,15 @@ void dump_unicode_str( const WCHAR *str, int len )
printf( "\"" ); printf( "\"" );
} }
char* guid_to_string(const GUID* guid, char* str, size_t sz)
{
snprintf(str, sz, "{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
guid->Data1, guid->Data2, guid->Data3,
guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
return str;
}
const void* PRD(unsigned long prd, unsigned long len) const void* PRD(unsigned long prd, unsigned long len)
{ {
return (prd + len > dump_total_len) ? NULL : (const char*)dump_base + prd; return (prd + len > dump_total_len) ? NULL : (const char*)dump_base + prd;
......
...@@ -106,14 +106,6 @@ typedef struct lnk_string_tag ...@@ -106,14 +106,6 @@ typedef struct lnk_string_tag
static unsigned offset; static unsigned offset;
static void guid_to_string(const GUID* guid, char *str)
{
sprintf(str, "{%08x-%04x-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}",
guid->Data1, guid->Data2, guid->Data3,
guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
}
static const void* fetch_block(void) static const void* fetch_block(void)
{ {
const unsigned* u; const unsigned* u;
...@@ -292,7 +284,7 @@ static int dump_advertise_info(const char *type) ...@@ -292,7 +284,7 @@ static int dump_advertise_info(const char *type)
GUID guid; GUID guid;
if (base85_to_guid(avt->bufA, &guid)) if (base85_to_guid(avt->bufA, &guid))
guid_to_string( &guid, prod_str ); guid_to_string( &guid, prod_str, sizeof(prod_str) );
else else
strcpy( prod_str, "?" ); strcpy( prod_str, "?" );
...@@ -311,7 +303,7 @@ static int dump_advertise_info(const char *type) ...@@ -311,7 +303,7 @@ static int dump_advertise_info(const char *type)
} }
if (feat && feat[0] == '>' && base85_to_guid( &feat[1], &guid )) if (feat && feat[0] == '>' && base85_to_guid( &feat[1], &guid ))
guid_to_string( &guid, feat_str ); guid_to_string( &guid, feat_str, sizeof(feat_str) );
else else
feat_str[0] = 0; feat_str[0] = 0;
...@@ -345,12 +337,10 @@ void lnk_dump(void) ...@@ -345,12 +337,10 @@ void lnk_dump(void)
offset = 0; offset = 0;
hdr = fetch_block(); hdr = fetch_block();
guid_to_string(&hdr->MagicGuid, guid);
printf("Header\n"); printf("Header\n");
printf("------\n\n"); printf("------\n\n");
printf("Size: %04x\n", hdr->dwSize); printf("Size: %04x\n", hdr->dwSize);
printf("GUID: %s\n", guid); printf("GUID: %s\n", guid_to_string(&hdr->MagicGuid, guid, sizeof(guid)));
printf("FileAttr: %08x\n", hdr->dwFileAttr); printf("FileAttr: %08x\n", hdr->dwFileAttr);
printf("FileLength: %08x\n", hdr->dwFileLength); printf("FileLength: %08x\n", hdr->dwFileLength);
......
...@@ -625,18 +625,18 @@ static void pdb_ds_dump(void) ...@@ -625,18 +625,18 @@ static void pdb_ds_dump(void)
if (root) if (root)
{ {
const char* ptr; const char* ptr;
char guid_str[40];
printf("Root:\n" printf("Root:\n"
"\tVersion: %u\n" "\tVersion: %u\n"
"\tTimeDateStamp: %08x\n" "\tTimeDateStamp: %08x\n"
"\tAge: %08x\n" "\tAge: %08x\n"
"\tguid {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n" "\tguid %s\n"
"\tcbNames: %08x\n", "\tcbNames: %08x\n",
root->Version, root->Version,
root->TimeDateStamp, root->TimeDateStamp,
root->Age, root->Age,
root->guid.Data1, root->guid.Data2, root->guid.Data3, guid_to_string(&root->guid, guid_str, sizeof(guid_str)),
root->guid.Data4[0], root->guid.Data4[1], root->guid.Data4[2], root->guid.Data4[3],
root->guid.Data4[4], root->guid.Data4[5], root->guid.Data4[6], root->guid.Data4[7],
root->cbNames); root->cbNames);
for (ptr = &root->names[0]; ptr < &root->names[0] + root->cbNames; ptr += strlen(ptr) + 1) for (ptr = &root->names[0]; ptr < &root->names[0] + root->cbNames; ptr += strlen(ptr) + 1)
printf("\tString: %s\n", ptr); printf("\tString: %s\n", ptr);
......
...@@ -239,6 +239,7 @@ void dump_unicode_str( const unsigned short *str, int len ); ...@@ -239,6 +239,7 @@ void dump_unicode_str( const unsigned short *str, int len );
void dump_file_header(const IMAGE_FILE_HEADER *); void dump_file_header(const IMAGE_FILE_HEADER *);
void dump_optional_header(const IMAGE_OPTIONAL_HEADER32 *, UINT); void dump_optional_header(const IMAGE_OPTIONAL_HEADER32 *, UINT);
void dump_section(const IMAGE_SECTION_HEADER *); void dump_section(const IMAGE_SECTION_HEADER *);
char* guid_to_string(const GUID* guid, char *str, size_t sz);
enum FileSig get_kind_exec(void); enum FileSig get_kind_exec(void);
void dos_dump( void ); void dos_dump( void );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment