- Timestamp:
- Aug 14, 2000, 9:15:37 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/winimagepeldr.cpp
r3993 r4015 1 /* $Id: winimagepeldr.cpp,v 1.5 2 2000-08-11 10:56:19sandervl Exp $ */1 /* $Id: winimagepeldr.cpp,v 1.53 2000-08-14 19:15:37 sandervl Exp $ */ 2 2 3 3 /* … … 400 400 } 401 401 dprintf((LOG, "*************************PE SECTIONS END **************************" )); 402 402 403 imageSize += imageVirtBase - oh.ImageBase; 403 404 dprintf((LOG, "Total size of Image %x", imageSize )); … … 431 432 if(loadType == REAL_LOAD) 432 433 { 433 if(tlsDir != NULL) { 434 Section *sect = findSection(SECTION_TLS); 435 436 if(sect == NULL) { 437 dprintf((LOG, "Couldn't find TLS section!!" )); 438 goto failure; 439 } 434 if(tlsDir = (IMAGE_TLS_DIRECTORY *)ImageDirectoryOffset(win32file, IMAGE_DIRECTORY_ENTRY_TLS)) 435 { 436 Section *sect = findSectionByAddr(tlsDir->StartAddressOfRawData); 437 440 438 dprintf((LOG, "TLS Directory" )); 441 439 dprintf((LOG, "TLS Address of Index %x", tlsDir->AddressOfIndex )); … … 443 441 dprintf((LOG, "TLS SizeOfZeroFill %x", tlsDir->SizeOfZeroFill )); 444 442 dprintf((LOG, "TLS Characteristics %x", tlsDir->Characteristics )); 443 if(sect == NULL) { 444 dprintf((LOG, "Couldn't find TLS section!!" )); 445 goto failure; 446 } 445 447 setTLSAddress((char *)sect->realvirtaddr); 446 448 setTLSInitSize(tlsDir->EndAddressOfRawData - tlsDir->StartAddressOfRawData); … … 463 465 } 464 466 } 467 468 #ifdef DEBUG 469 dprintf((LOG, "Image directories: ")); 470 for (i = 0; i < IMAGE_NUMBEROF_DIRECTORY_ENTRIES; i++) 471 { 472 char *pszName; 473 474 switch (i) 475 { 476 case IMAGE_DIRECTORY_ENTRY_EXPORT: pszName = "Export Directory (IMAGE_DIRECTORY_ENTRY_EXPORT)"; break; 477 case IMAGE_DIRECTORY_ENTRY_IMPORT: pszName = "Import Directory (IMAGE_DIRECTORY_ENTRY_IMPORT)"; break; 478 case IMAGE_DIRECTORY_ENTRY_RESOURCE: pszName = "Resource Directory (IMAGE_DIRECTORY_ENTRY_RESOURCE)"; break; 479 case IMAGE_DIRECTORY_ENTRY_EXCEPTION: pszName = "Exception Directory (IMAGE_DIRECTORY_ENTRY_EXCEPTION)"; break; 480 case IMAGE_DIRECTORY_ENTRY_SECURITY: pszName = "Security Directory (IMAGE_DIRECTORY_ENTRY_SECURITY)"; break; 481 case IMAGE_DIRECTORY_ENTRY_BASERELOC: pszName = "Base Relocation Table (IMAGE_DIRECTORY_ENTRY_BASERELOC)"; break; 482 case IMAGE_DIRECTORY_ENTRY_DEBUG: pszName = "Debug Directory (IMAGE_DIRECTORY_ENTRY_DEBUG)"; break; 483 case IMAGE_DIRECTORY_ENTRY_COPYRIGHT: pszName = "Description String (IMAGE_DIRECTORY_ENTRY_COPYRIGHT)"; break; 484 case IMAGE_DIRECTORY_ENTRY_GLOBALPTR: pszName = "Machine Value (MIPS GP) (IMAGE_DIRECTORY_ENTRY_GLOBALPTR)"; break; 485 case IMAGE_DIRECTORY_ENTRY_TLS: pszName = "TLS Directory (IMAGE_DIRECTORY_ENTRY_TLS)"; break; 486 case IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG: pszName = "Load Configuration Directory (IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG)"; break; 487 case IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT:pszName = "Bound Import Directory in headers (IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT)"; break; 488 case IMAGE_DIRECTORY_ENTRY_IAT: pszName = "Import Address Table (IMAGE_DIRECTORY_ENTRY_IAT)"; break; 489 default: 490 pszName = "unknown"; 491 } 492 dprintf((LOG, "directory %s", pszName)); 493 dprintf((LOG, " Address 0x%08x", oh.DataDirectory[i].VirtualAddress)); 494 dprintf((LOG, " Size 0x%08x", oh.DataDirectory[i].Size)); 495 } 496 dprintf((LOG, "\n\n")); 497 #endif 465 498 466 499 if(realBaseAddress != oh.ImageBase) {
Note:
See TracChangeset
for help on using the changeset viewer.