From 98783faaecbfc62a2436b9246dc3b2e943731f46 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Mon, 10 Apr 2006 20:53:50 +0200 Subject: [PATCH] winedump: Constify some pointers. --- tools/winedump/debug.c | 79 ++++++++++++------------ tools/winedump/dump.c | 22 +++---- tools/winedump/minidump.c | 51 ++++++++-------- tools/winedump/pe.c | 125 +++++++++++++++++++------------------- tools/winedump/pe.h | 4 +- tools/winedump/winedump.h | 6 +- 6 files changed, 144 insertions(+), 143 deletions(-) diff --git a/tools/winedump/debug.c b/tools/winedump/debug.c index 419447d9041..2a281e7ccf1 100644 --- a/tools/winedump/debug.c +++ b/tools/winedump/debug.c @@ -99,14 +99,13 @@ * (OMFDirHeader.cDir) */ -extern IMAGE_NT_HEADERS* PE_nt_headers; +extern const IMAGE_NT_HEADERS* PE_nt_headers; +static const void* cv_base /* = 0 */; -static void* cv_base /* = 0 */; - -static int dump_cv_sst_module(OMFDirEntry* omfde) +static int dump_cv_sst_module(const OMFDirEntry* omfde) { - OMFModule* module; - OMFSegDesc* segDesc; + const OMFModule* module; + const OMFSegDesc* segDesc; int i; module = PRD(Offset(cv_base) + omfde->lfo, sizeof(OMFModule)); @@ -132,16 +131,16 @@ static int dump_cv_sst_module(OMFDirEntry* omfde) return TRUE; } -static int dump_cv_sst_global_pub(OMFDirEntry* omfde) +static int dump_cv_sst_global_pub(const OMFDirEntry* omfde) { - long fileoffset; - OMFSymHash* header; - BYTE* symbols; - BYTE* curpos; - PUBSYM32* sym; - unsigned symlen; - int recordlen; - char nametmp[256]; + long fileoffset; + const OMFSymHash* header; + const BYTE* symbols; + const BYTE* curpos; + const PUBSYM32* sym; + unsigned symlen; + int recordlen; + char nametmp[256]; fileoffset = Offset(cv_base) + omfde->lfo; printf (" GlobalPub section starts at file offset 0x%lx\n", fileoffset); @@ -189,34 +188,34 @@ static int dump_cv_sst_global_pub(OMFDirEntry* omfde) return TRUE; } -static int dump_cv_sst_global_sym(OMFDirEntry* omfde) +static int dump_cv_sst_global_sym(const OMFDirEntry* omfde) { /*** NOT YET IMPLEMENTED ***/ return TRUE; } -static int dump_cv_sst_static_sym(OMFDirEntry* omfde) +static int dump_cv_sst_static_sym(const OMFDirEntry* omfde) { /*** NOT YET IMPLEMENTED ***/ return TRUE; } -static int dump_cv_sst_libraries(OMFDirEntry* omfde) +static int dump_cv_sst_libraries(const OMFDirEntry* omfde) { /*** NOT YET IMPLEMENTED ***/ return TRUE; } -static int dump_cv_sst_global_types(OMFDirEntry* omfde) +static int dump_cv_sst_global_types(const OMFDirEntry* omfde) { /*** NOT YET IMPLEMENTED ***/ return TRUE; } -static int dump_cv_sst_seg_map(OMFDirEntry* omfde) +static int dump_cv_sst_seg_map(const OMFDirEntry* omfde) { - OMFSegMap* segMap; - OMFSegMapDesc* segMapDesc; + const OMFSegMap* segMap; + const OMFSegMapDesc* segMapDesc; int i; segMap = PRD(Offset(cv_base) + omfde->lfo, sizeof(OMFSegMap)); @@ -244,22 +243,22 @@ static int dump_cv_sst_seg_map(OMFDirEntry* omfde) return TRUE; } -static int dump_cv_sst_file_index(OMFDirEntry* omfde) +static int dump_cv_sst_file_index(const OMFDirEntry* omfde) { /*** NOT YET IMPLEMENTED ***/ return TRUE; } -static int dump_cv_sst_src_module(OMFDirEntry* omfde) +static int dump_cv_sst_src_module(const OMFDirEntry* omfde) { - int i, j; - BYTE* rawdata; - unsigned long* seg_info_dw; - unsigned short* seg_info_w; - unsigned ofs; - OMFSourceModule* sourceModule; - OMFSourceFile* sourceFile; - OMFSourceLine* sourceLine; + int i, j; + const BYTE* rawdata; + const unsigned long* seg_info_dw; + const unsigned short* seg_info_w; + unsigned ofs; + const OMFSourceModule* sourceModule; + const OMFSourceFile* sourceFile; + const OMFSourceLine* sourceLine; rawdata = PRD(Offset(cv_base) + omfde->lfo, omfde->cb); if (!rawdata) {printf("Can't get srcModule subsection details, aborting\n");return FALSE;} @@ -340,17 +339,17 @@ static int dump_cv_sst_src_module(OMFDirEntry* omfde) return TRUE; } -static int dump_cv_sst_align_sym(OMFDirEntry* omfde) +static int dump_cv_sst_align_sym(const OMFDirEntry* omfde) { /*** NOT YET IMPLEMENTED ***/ return TRUE; } -static void dump_codeview_all_modules(OMFDirHeader *omfdh) +static void dump_codeview_all_modules(const OMFDirHeader *omfdh) { unsigned i; - OMFDirEntry *dirEntry; + const OMFDirEntry* dirEntry; const char* str; if (!omfdh || !omfdh->cDir) return; @@ -402,9 +401,9 @@ static void dump_codeview_all_modules(OMFDirHeader *omfdh) static void dump_codeview_headers(unsigned long base, unsigned long len) { - OMFDirHeader *dirHeader; - OMFSignature *signature; - OMFDirEntry *dirEntry; + const OMFDirHeader* dirHeader; + const OMFSignature* signature; + const OMFDirEntry* dirEntry; unsigned i; int modulecount = 0, alignsymcount = 0, srcmodulecount = 0, librariescount = 0; int globalsymcount = 0, globalpubcount = 0, globaltypescount = 0; @@ -507,14 +506,14 @@ static const char* get_coff_name( PIMAGE_SYMBOL coff_sym, const char* coff_str return nampnt; } -void dump_coff(unsigned long coffbase, unsigned long len, void* pmt) +void dump_coff(unsigned long coffbase, unsigned long len, const void* pmt) { PIMAGE_COFF_SYMBOLS_HEADER coff; PIMAGE_SYMBOL coff_sym; PIMAGE_SYMBOL coff_symbols; PIMAGE_LINENUMBER coff_linetab; char * coff_strtab; - IMAGE_SECTION_HEADER * sectHead = pmt; + const IMAGE_SECTION_HEADER * sectHead = pmt; unsigned int i; const char * nampnt; int naux; diff --git a/tools/winedump/dump.c b/tools/winedump/dump.c index bb8af6dc3ef..97daee384c2 100644 --- a/tools/winedump/dump.c +++ b/tools/winedump/dump.c @@ -132,19 +132,19 @@ void dump_unicode_str( const WCHAR *str, int len ) printf( "\"" ); } -void* PRD(unsigned long prd, unsigned long len) +const void* PRD(unsigned long prd, unsigned long len) { - return (prd + len > dump_total_len) ? NULL : (char*)dump_base + prd; + return (prd + len > dump_total_len) ? NULL : (const char*)dump_base + prd; } -unsigned long Offset(void* ptr) +unsigned long Offset(const void* ptr) { if (ptr < dump_base) {printf("<<<<= (char*)dump_base + dump_total_len) {printf("<<<<= (const char*)dump_base + dump_total_len) {printf("<<<<Buffer, ms->Length / sizeof(WCHAR) ); else printf("<>"); } -static MINIDUMP_DIRECTORY* get_mdmp_dir(const MINIDUMP_HEADER* hdr, int str_idx) +static const MINIDUMP_DIRECTORY* get_mdmp_dir(const MINIDUMP_HEADER* hdr, int str_idx) { - MINIDUMP_DIRECTORY* dir; - unsigned int i; + const MINIDUMP_DIRECTORY* dir; + unsigned int i; for (i = 0; i < hdr->NumberOfStreams; i++) { @@ -61,10 +61,10 @@ static MINIDUMP_DIRECTORY* get_mdmp_dir(const MINIDUMP_HEADER* hdr, int str_idx) void mdmp_dump(void) { - MINIDUMP_HEADER* hdr = (MINIDUMP_HEADER*)PRD(0, sizeof(MINIDUMP_HEADER)); - ULONG idx, ndir = 0; - MINIDUMP_DIRECTORY* dir; - void* stream; + const MINIDUMP_HEADER* hdr = (const MINIDUMP_HEADER*)PRD(0, sizeof(MINIDUMP_HEADER)); + ULONG idx, ndir = 0; + const MINIDUMP_DIRECTORY* dir; + const void* stream; if (!hdr) { @@ -72,7 +72,7 @@ void mdmp_dump(void) return; } - printf("Signature: %lu (%.4s)\n", hdr->Signature, (char*)&hdr->Signature); + printf("Signature: %lu (%.4s)\n", hdr->Signature, (const char*)&hdr->Signature); printf("Version: %lx\n", hdr->Version); printf("NumberOfStreams: %lu\n", hdr->NumberOfStreams); printf("StreamDirectoryRva: %lu\n", hdr->StreamDirectoryRva); @@ -90,9 +90,9 @@ void mdmp_dump(void) { case ThreadListStream: { - MINIDUMP_THREAD_LIST* mtl = (MINIDUMP_THREAD_LIST*)stream; - MINIDUMP_THREAD* mt = &mtl->Threads[0]; - unsigned int i; + const MINIDUMP_THREAD_LIST* mtl = (const MINIDUMP_THREAD_LIST*)stream; + const MINIDUMP_THREAD* mt = &mtl->Threads[0]; + unsigned int i; printf("Threads: %lu\n", mtl->NumberOfThreads); for (i = 0; i < mtl->NumberOfThreads; i++, mt++) @@ -115,11 +115,11 @@ void mdmp_dump(void) case ModuleListStream: case 0xFFF0: { - MINIDUMP_MODULE_LIST* mml = (MINIDUMP_MODULE_LIST*)stream; - MINIDUMP_MODULE* mm = &mml->Modules[0]; - unsigned int i; - const char* p1; - const char* p2; + const MINIDUMP_MODULE_LIST* mml = (const MINIDUMP_MODULE_LIST*)stream; + const MINIDUMP_MODULE* mm = &mml->Modules[0]; + unsigned int i; + const char* p1; + const char* p2; printf("Modules (%s): %lu\n", dir->StreamType == ModuleListStream ? "PE" : "ELF", @@ -207,9 +207,9 @@ void mdmp_dump(void) break; case MemoryListStream: { - MINIDUMP_MEMORY_LIST* mml = (MINIDUMP_MEMORY_LIST*)stream; - MINIDUMP_MEMORY_DESCRIPTOR* mmd = &mml->MemoryRanges[0]; - unsigned int i; + const MINIDUMP_MEMORY_LIST* mml = (const MINIDUMP_MEMORY_LIST*)stream; + const MINIDUMP_MEMORY_DESCRIPTOR* mmd = &mml->MemoryRanges[0]; + unsigned int i; printf("Memory Ranges: %lu\n", mml->NumberOfMemoryRanges); for (i = 0; i < mml->NumberOfMemoryRanges; i++, mmd++) @@ -224,7 +224,7 @@ void mdmp_dump(void) break; case SystemInfoStream: { - MINIDUMP_SYSTEM_INFO* msi = (MINIDUMP_SYSTEM_INFO*)stream; + const MINIDUMP_SYSTEM_INFO* msi = (const MINIDUMP_SYSTEM_INFO*)stream; const char* str; char tmp[128]; @@ -307,7 +307,7 @@ void mdmp_dump(void) if (msi->ProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL) { printf(" x86.VendorId: %.12s\n", - (char*)&msi->Cpu.X86CpuInfo.VendorId[0]); + (const char*)&msi->Cpu.X86CpuInfo.VendorId[0]); printf(" x86.VersionInformation: %lx\n", msi->Cpu.X86CpuInfo.VersionInformation); printf(" x86.FeatureInformation: %lx\n", @@ -319,7 +319,8 @@ void mdmp_dump(void) break; case MiscInfoStream: { - MINIDUMP_MISC_INFO* mmi = (MINIDUMP_MISC_INFO*)stream; + const MINIDUMP_MISC_INFO* mmi = (const MINIDUMP_MISC_INFO*)stream; + printf("Misc Information\n"); printf(" Size: %lu\n", mmi->SizeOfInfo); printf(" Flags: %s%s\n", @@ -337,8 +338,8 @@ void mdmp_dump(void) break; case ExceptionStream: { - MINIDUMP_EXCEPTION_STREAM* mes = (MINIDUMP_EXCEPTION_STREAM*)stream; - unsigned int i; + const MINIDUMP_EXCEPTION_STREAM* mes = (const MINIDUMP_EXCEPTION_STREAM*)stream; + unsigned int i; printf("Exception:\n"); printf(" ThreadId: %08lx\n", mes->ThreadId); diff --git a/tools/winedump/pe.c b/tools/winedump/pe.c index e8ae5966c2b..f959ed53936 100644 --- a/tools/winedump/pe.c +++ b/tools/winedump/pe.c @@ -46,7 +46,7 @@ #include "winedump.h" #include "pe.h" -static IMAGE_NT_HEADERS32* PE_nt_headers; +static const IMAGE_NT_HEADERS32* PE_nt_headers; static const char* get_machine_str(DWORD mach) { @@ -66,7 +66,7 @@ static const char* get_machine_str(DWORD mach) return "???"; } -static void* RVA(unsigned long rva, unsigned long len) +static const void* RVA(unsigned long rva, unsigned long len) { IMAGE_SECTION_HEADER* sectHead; int i; @@ -87,10 +87,10 @@ static void* RVA(unsigned long rva, unsigned long len) return NULL; } -static IMAGE_NT_HEADERS32 *get_nt_header( void *pmt ) +static const IMAGE_NT_HEADERS32 *get_nt_header( const void *pmt ) { - IMAGE_DOS_HEADER *dos = pmt; - return (IMAGE_NT_HEADERS32 *)((BYTE *)dos + dos->e_lfanew); + const IMAGE_DOS_HEADER *dos = pmt; + return (const IMAGE_NT_HEADERS32 *)((const BYTE *)dos + dos->e_lfanew); } static int is_fake_dll( const void *base ) @@ -103,11 +103,11 @@ static int is_fake_dll( const void *base ) return FALSE; } -static void *get_dir_and_size(unsigned int idx, unsigned int *size) +static const void *get_dir_and_size(unsigned int idx, unsigned int *size) { if(PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) { - IMAGE_OPTIONAL_HEADER64 *opt = (IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader; + const IMAGE_OPTIONAL_HEADER64 *opt = (const IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader; if (idx >= opt->NumberOfRvaAndSizes) return NULL; if(size) @@ -117,7 +117,7 @@ static void *get_dir_and_size(unsigned int idx, unsigned int *size) } else { - IMAGE_OPTIONAL_HEADER32 *opt = (IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader; + const IMAGE_OPTIONAL_HEADER32 *opt = (const IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader; if (idx >= opt->NumberOfRvaAndSizes) return NULL; if(size) @@ -127,7 +127,7 @@ static void *get_dir_and_size(unsigned int idx, unsigned int *size) } } -static void* get_dir(unsigned idx) +static const void* get_dir(unsigned idx) { return get_dir_and_size(idx, 0); } @@ -204,7 +204,7 @@ static inline void print_dllflags(const char *title, WORD value) #undef X } -static inline void print_datadirectory(DWORD n, IMAGE_DATA_DIRECTORY *directory) +static inline void print_datadirectory(DWORD n, const IMAGE_DATA_DIRECTORY *directory) { unsigned i; printf("Data Directory\n"); @@ -218,7 +218,7 @@ static inline void print_datadirectory(DWORD n, IMAGE_DATA_DIRECTORY *directory) } } -static void dump_optional_header32(IMAGE_OPTIONAL_HEADER32 *optionalHeader) +static void dump_optional_header32(const IMAGE_OPTIONAL_HEADER32 *optionalHeader) { print_word("Magic", optionalHeader->Magic); print_ver("linker version", @@ -254,7 +254,7 @@ static void dump_optional_header32(IMAGE_OPTIONAL_HEADER32 *optionalHeader) print_datadirectory(optionalHeader->NumberOfRvaAndSizes, optionalHeader->DataDirectory); } -static void dump_optional_header64(IMAGE_OPTIONAL_HEADER64 *optionalHeader) +static void dump_optional_header64(const IMAGE_OPTIONAL_HEADER64 *optionalHeader) { print_word("Magic", optionalHeader->Magic); print_ver("linker version", @@ -291,7 +291,7 @@ static void dump_optional_header64(IMAGE_OPTIONAL_HEADER64 *optionalHeader) static void dump_pe_header(void) { - IMAGE_FILE_HEADER *fileHeader; + const IMAGE_FILE_HEADER *fileHeader; printf("File Header\n"); fileHeader = &PE_nt_headers->FileHeader; @@ -330,10 +330,10 @@ static void dump_pe_header(void) printf("Optional Header (%s)\n", get_magic_type(PE_nt_headers->OptionalHeader.Magic)); switch(PE_nt_headers->OptionalHeader.Magic) { case IMAGE_NT_OPTIONAL_HDR32_MAGIC: - dump_optional_header32((IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader); + dump_optional_header32((const IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader); break; case IMAGE_NT_OPTIONAL_HDR64_MAGIC: - dump_optional_header64((IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader); + dump_optional_header64((const IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader); break; default: printf(" Unknown header magic: 0x%-4X\n", PE_nt_headers->OptionalHeader.Magic); @@ -342,9 +342,9 @@ static void dump_pe_header(void) printf("\n"); } -static void dump_sections(void* addr, unsigned num_sect) +static void dump_sections(const void* addr, unsigned num_sect) { - IMAGE_SECTION_HEADER* sectHead = addr; + const IMAGE_SECTION_HEADER* sectHead = addr; unsigned i; printf("Section Table\n"); @@ -416,19 +416,19 @@ static void dump_sections(void* addr, unsigned num_sect) static void dump_dir_exported_functions(void) { unsigned int size = 0; - IMAGE_EXPORT_DIRECTORY *exportDir = get_dir_and_size(IMAGE_FILE_EXPORT_DIRECTORY, &size); + const IMAGE_EXPORT_DIRECTORY*exportDir = get_dir_and_size(IMAGE_FILE_EXPORT_DIRECTORY, &size); unsigned int i; - DWORD* pFunc; - DWORD* pName; - WORD* pOrdl; - DWORD* map; + const DWORD* pFunc; + const DWORD* pName; + const WORD* pOrdl; + DWORD* map; parsed_symbol symbol; if (!exportDir) return; printf("Exports table:\n"); printf("\n"); - printf(" Name: %s\n", (char*)RVA(exportDir->Name, sizeof(DWORD))); + printf(" Name: %s\n", (const char*)RVA(exportDir->Name, sizeof(DWORD))); printf(" Characteristics: %08lx\n", exportDir->Characteristics); printf(" TimeDateStamp: %08lX %s\n", exportDir->TimeDateStamp, get_time_str(exportDir->TimeDateStamp)); @@ -455,11 +455,11 @@ static void dump_dir_exported_functions(void) for (i = 0; i < exportDir->NumberOfNames; i++, pName++, pOrdl++) { - char* name; + const char* name; map[*pOrdl / 32] |= 1 << (*pOrdl % 32); - name = (char*)RVA(*pName, sizeof(DWORD)); + name = (const char*)RVA(*pName, sizeof(DWORD)); if (name && globals.do_demangle) { printf(" %08lX %4lu ", pFunc[*pOrdl], exportDir->Base + *pOrdl); @@ -478,9 +478,9 @@ static void dump_dir_exported_functions(void) printf(" %08lX %4lu %s", pFunc[*pOrdl], exportDir->Base + *pOrdl, name); } /* check for forwarded function */ - if ((char *)RVA(pFunc[*pOrdl],sizeof(void*)) >= (char *)exportDir && - (char *)RVA(pFunc[*pOrdl],sizeof(void*)) < (char *)exportDir + size) - printf( " (-> %s)", (char *)RVA(pFunc[*pOrdl],1)); + if ((const char *)RVA(pFunc[*pOrdl],sizeof(void*)) >= (const char *)exportDir && + (const char *)RVA(pFunc[*pOrdl],sizeof(void*)) < (const char *)exportDir + size) + printf( " (-> %s)", (const char *)RVA(pFunc[*pOrdl],1)); printf("\n"); } pFunc = RVA(exportDir->AddressOfFunctions, exportDir->NumberOfFunctions * sizeof(DWORD)); @@ -496,10 +496,10 @@ static void dump_dir_exported_functions(void) printf("\n"); } -static void dump_image_thunk_data64(IMAGE_THUNK_DATA64 *il) +static void dump_image_thunk_data64(const IMAGE_THUNK_DATA64 *il) { /* FIXME: This does not properly handle large images */ - IMAGE_IMPORT_BY_NAME* iibn; + const IMAGE_IMPORT_BY_NAME* iibn; for (; il->u1.Ordinal; il++) { if (IMAGE_SNAP_BY_ORDINAL64(il->u1.Ordinal)) @@ -515,9 +515,9 @@ static void dump_image_thunk_data64(IMAGE_THUNK_DATA64 *il) } } -static void dump_image_thunk_data32(IMAGE_THUNK_DATA32 *il) +static void dump_image_thunk_data32(const IMAGE_THUNK_DATA32 *il) { - IMAGE_IMPORT_BY_NAME* iibn; + const IMAGE_IMPORT_BY_NAME* iibn; for (; il->u1.Ordinal; il++) { if (IMAGE_SNAP_BY_ORDINAL32(il->u1.Ordinal)) @@ -535,18 +535,18 @@ static void dump_image_thunk_data32(IMAGE_THUNK_DATA32 *il) static void dump_dir_imported_functions(void) { - IMAGE_IMPORT_DESCRIPTOR *importDesc = get_dir(IMAGE_FILE_IMPORT_DIRECTORY); + const IMAGE_IMPORT_DESCRIPTOR *importDesc = get_dir(IMAGE_FILE_IMPORT_DIRECTORY); DWORD directorySize; if (!importDesc) return; if(PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) { - IMAGE_OPTIONAL_HEADER64 *opt = (IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader; + const IMAGE_OPTIONAL_HEADER64 *opt = (const IMAGE_OPTIONAL_HEADER64*)&PE_nt_headers->OptionalHeader; directorySize = opt->DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY].Size; } else { - IMAGE_OPTIONAL_HEADER32 *opt = (IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader; + const IMAGE_OPTIONAL_HEADER32 *opt = (const IMAGE_OPTIONAL_HEADER32*)&PE_nt_headers->OptionalHeader; directorySize = opt->DataDirectory[IMAGE_FILE_IMPORT_DIRECTORY].Size; } @@ -554,11 +554,11 @@ static void dump_dir_imported_functions(void) for (;;) { - IMAGE_THUNK_DATA32* il; + const IMAGE_THUNK_DATA32* il; if (!importDesc->Name || !importDesc->FirstThunk) break; - printf(" offset %08lx %s\n", Offset(importDesc), (char*)RVA(importDesc->Name, sizeof(DWORD))); + printf(" offset %08lx %s\n", Offset(importDesc), (const char*)RVA(importDesc->Name, sizeof(DWORD))); printf(" Hint/Name Table: %08lX\n", (DWORD)importDesc->u.OriginalFirstThunk); printf(" TimeDataStamp: %08lX (%s)\n", importDesc->TimeDateStamp, get_time_str(importDesc->TimeDateStamp)); @@ -576,7 +576,7 @@ static void dump_dir_imported_functions(void) else { if(PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) - dump_image_thunk_data64((IMAGE_THUNK_DATA64*)il); + dump_image_thunk_data64((const IMAGE_THUNK_DATA64*)il); else dump_image_thunk_data32(il); printf("\n"); @@ -588,7 +588,7 @@ static void dump_dir_imported_functions(void) static void dump_dir_delay_imported_functions(void) { - struct ImgDelayDescr + const struct ImgDelayDescr { DWORD grAttrs; DWORD szName; @@ -604,12 +604,12 @@ static void dump_dir_delay_imported_functions(void) if (!importDesc) return; if (PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) { - IMAGE_OPTIONAL_HEADER64 *opt = (IMAGE_OPTIONAL_HEADER64 *)&PE_nt_headers->OptionalHeader; + const IMAGE_OPTIONAL_HEADER64 *opt = (const IMAGE_OPTIONAL_HEADER64 *)&PE_nt_headers->OptionalHeader; directorySize = opt->DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].Size; } else { - IMAGE_OPTIONAL_HEADER32 *opt = (IMAGE_OPTIONAL_HEADER32 *)&PE_nt_headers->OptionalHeader; + const IMAGE_OPTIONAL_HEADER32 *opt = (const IMAGE_OPTIONAL_HEADER32 *)&PE_nt_headers->OptionalHeader; directorySize = opt->DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].Size; } @@ -617,27 +617,27 @@ static void dump_dir_delay_imported_functions(void) for (;;) { - BOOL use_rva = importDesc->grAttrs & 1; - IMAGE_THUNK_DATA32 *il; + BOOL use_rva = importDesc->grAttrs & 1; + const IMAGE_THUNK_DATA32* il; if (!importDesc->szName || !importDesc->pIAT || !importDesc->pINT) break; printf(" grAttrs %08lx offset %08lx %s\n", importDesc->grAttrs, Offset(importDesc), - use_rva ? (char *)RVA(importDesc->szName, sizeof(DWORD)) : (char *)importDesc->szName); + use_rva ? (const char *)RVA(importDesc->szName, sizeof(DWORD)) : (char *)importDesc->szName); printf(" Hint/Name Table: %08lx\n", importDesc->pINT); printf(" TimeDataStamp: %08lX (%s)\n", importDesc->dwTimeStamp, get_time_str(importDesc->dwTimeStamp)); printf(" Ordn Name\n"); - il = use_rva ? (IMAGE_THUNK_DATA32 *)RVA(importDesc->pINT, sizeof(DWORD)) : (IMAGE_THUNK_DATA32 *)importDesc->pINT; + il = use_rva ? (const IMAGE_THUNK_DATA32 *)RVA(importDesc->pINT, sizeof(DWORD)) : (const IMAGE_THUNK_DATA32 *)importDesc->pINT; if (!il) printf("Can't grab thunk data, going to next imported DLL\n"); else { if (PE_nt_headers->OptionalHeader.Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) - dump_image_thunk_data64((IMAGE_THUNK_DATA64 *)il); + dump_image_thunk_data64((const IMAGE_THUNK_DATA64 *)il); else dump_image_thunk_data32(il); printf("\n"); @@ -647,7 +647,7 @@ static void dump_dir_delay_imported_functions(void) printf("\n"); } -static void dump_dir_debug_dir(IMAGE_DEBUG_DIRECTORY* idd, int idx) +static void dump_dir_debug_dir(const IMAGE_DEBUG_DIRECTORY* idd, int idx) { const char* str; @@ -682,7 +682,7 @@ static void dump_dir_debug_dir(IMAGE_DEBUG_DIRECTORY* idd, int idx) break; case IMAGE_DEBUG_TYPE_COFF: dump_coff(idd->PointerToRawData, idd->SizeOfData, - (char*)PE_nt_headers + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader); + (const char*)PE_nt_headers + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader); break; case IMAGE_DEBUG_TYPE_CODEVIEW: dump_codeview(idd->PointerToRawData, idd->SizeOfData); @@ -692,7 +692,7 @@ static void dump_dir_debug_dir(IMAGE_DEBUG_DIRECTORY* idd, int idx) break; case IMAGE_DEBUG_TYPE_MISC: { - IMAGE_DEBUG_MISC* misc = PRD(idd->PointerToRawData, idd->SizeOfData); + const IMAGE_DEBUG_MISC* misc = PRD(idd->PointerToRawData, idd->SizeOfData); if (!misc) {printf("Can't get misc debug information\n"); break;} printf(" DataType: %lu (%s)\n", misc->DataType, @@ -720,7 +720,7 @@ static void dump_dir_debug_dir(IMAGE_DEBUG_DIRECTORY* idd, int idx) static void dump_dir_debug(void) { - IMAGE_DEBUG_DIRECTORY* debugDir = get_dir(IMAGE_FILE_DEBUG_DIRECTORY); + const IMAGE_DEBUG_DIRECTORY*debugDir = get_dir(IMAGE_FILE_DEBUG_DIRECTORY); unsigned nb_dbg, i; if (!debugDir) return; @@ -781,15 +781,16 @@ static void dump_dir_tls(void) void dump_separate_dbg(void) { - IMAGE_SEPARATE_DEBUG_HEADER*separateDebugHead = PRD(0, sizeof(separateDebugHead)); - unsigned nb_dbg; - unsigned i; - IMAGE_DEBUG_DIRECTORY* debugDir; + const IMAGE_SEPARATE_DEBUG_HEADER* separateDebugHead; + unsigned nb_dbg; + unsigned i; + const IMAGE_DEBUG_DIRECTORY* debugDir; + separateDebugHead = PRD(0, sizeof(separateDebugHead)); if (!separateDebugHead) {printf("Can't grab the separate header, aborting\n"); return;} printf ("Signature: %.2s (0x%4X)\n", - (char*)&separateDebugHead->Signature, separateDebugHead->Signature); + (const char*)&separateDebugHead->Signature, separateDebugHead->Signature); printf ("Flags: 0x%04X\n", separateDebugHead->Flags); printf ("Machine: 0x%04X (%s)\n", separateDebugHead->Machine, get_machine_str(separateDebugHead->Machine)); @@ -1075,7 +1076,7 @@ static void dump_dir_resource(void) printf( "\n\n" ); } -void pe_dump(void* pmt) +void pe_dump(const void* pmt) { int all = (globals.dumpsect != NULL) && strcmp(globals.dumpsect, "ALL") == 0; @@ -1086,7 +1087,7 @@ void pe_dump(void* pmt) { dump_pe_header(); /* FIXME: should check ptr */ - dump_sections((char*)PE_nt_headers + sizeof(DWORD) + + dump_sections((const char*)PE_nt_headers + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + PE_nt_headers->FileHeader.SizeOfOptionalHeader, PE_nt_headers->FileHeader.NumberOfSections); } @@ -1153,13 +1154,13 @@ static void dll_close (void) } */ -static void do_grab_sym( enum FileSig sig, void* pmt ) +static void do_grab_sym( enum FileSig sig, const void* pmt ) { - IMAGE_EXPORT_DIRECTORY *exportDir; + const IMAGE_EXPORT_DIRECTORY*exportDir; unsigned i, j; - DWORD* pName; - DWORD* pFunc; - WORD* pOrdl; + const DWORD* pName; + const DWORD* pFunc; + const WORD* pOrdl; const char* ptr; DWORD* map; diff --git a/tools/winedump/pe.h b/tools/winedump/pe.h index ef0a269decf..cf09b0a7760 100644 --- a/tools/winedump/pe.h +++ b/tools/winedump/pe.h @@ -19,7 +19,7 @@ */ extern void dump_codeview(unsigned long ptr, unsigned long len); -extern void dump_coff(unsigned long coffbase, unsigned long len, void* sect_map); +extern void dump_coff(unsigned long coffbase, unsigned long len, const void* sect_map); extern void dump_frame_pointer_omission(unsigned long base, unsigned long len); extern void dump_separate_dbg(void); -extern void pe_dump(void*); +extern void pe_dump(const void*); diff --git a/tools/winedump/winedump.h b/tools/winedump/winedump.h index 2fefbdac174..9e725dfbf7d 100644 --- a/tools/winedump/winedump.h +++ b/tools/winedump/winedump.h @@ -225,10 +225,10 @@ char *str_toupper (char *str); /* file dumping functions */ enum FileSig {SIG_UNKNOWN, SIG_DOS, SIG_PE, SIG_DBG, SIG_NE, SIG_LE, SIG_MDMP}; -void* PRD(unsigned long prd, unsigned long len); -unsigned long Offset(void* ptr); +const void* PRD(unsigned long prd, unsigned long len); +unsigned long Offset(const void* ptr); -typedef void (*file_dumper)(enum FileSig, void*); +typedef void (*file_dumper)(enum FileSig, const void*); int dump_analysis(const char*, file_dumper, enum FileSig); void dump_data( const unsigned char *ptr, unsigned int size, const char *prefix );