From 156206592a7ff8a157f5413b9036475c2346967b Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Sat, 31 Aug 2013 12:45:42 +0200 Subject: [PATCH] winedump: Improve TLB string table handling. --- tools/winedump/tlb.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/tools/winedump/tlb.c b/tools/winedump/tlb.c index d12831e9dfe..a65c76ea396 100644 --- a/tools/winedump/tlb.c +++ b/tools/winedump/tlb.c @@ -428,14 +428,35 @@ static int dump_msft_nametab(seg_t *seg) return -1; } -static int dump_msft_stringtab(seg_t *seg) +static void dump_msft_string(int n) { - print_begin_block("StringTab"); + int len; - dump_binary(seg->length); /* FIXME */ + print_begin_block_id("String", n); + + len = print_short_hex("stringlen"); + + print_offset(); + printf("string = "); + dump_string(len, 2); + + if(len < 3) { + for(len = 0; len < 4; len++) + printf("\\%2.2x", tlb_read_byte()); + } + printf("\n"); print_end_block(); +} +static int dump_msft_stringtab(seg_t *seg) +{ + int i; + + for(i = 0; offset < seg->offset+seg->length; i++) + dump_msft_string(i); + + assert(offset == seg->offset+seg->length); return -1; }