Currently, LLDB prints out a rather unhelpful error message when passed a file that it doesn't recognize as an executable. > error: '/path/to/file' doesn't contain any 'host' platform > architectures: arm64, armv7, armv7f, armv7k, armv7s, armv7m, armv7em, > armv6m, armv6, armv5, armv4, arm, thumbv7, thumbv7k, thumbv7s, > thumbv7f, thumbv7m, thumbv7em, thumbv6m, thumbv6, thumbv5, thumbv4t, > thumb, x86_64, x86_64, arm64, arm64e I did a quick search internally and found at least 24 instances of users being confused by this. This patch improves the error message when it doesn't recognize the file as an executable, but keeps the existing error message otherwise, i.e. when it's an object file we understand, but the current platform doesn't support.
82 lines
2.2 KiB
YAML
82 lines
2.2 KiB
YAML
## Test that errors in loading an exe doesn't crash lldb.
|
|
## The ExportTable RelativeVirtualAddress is out of bounds here.
|
|
|
|
# RUN: yaml2obj %s -o %t.exe
|
|
# RUN: %lldb %t.exe 2>&1 | FileCheck %s
|
|
|
|
# CHECK: error: '{{.*}}' is not a valid executable
|
|
--- !COFF
|
|
OptionalHeader:
|
|
AddressOfEntryPoint: 4096
|
|
ImageBase: 1073741824
|
|
SectionAlignment: 4096
|
|
FileAlignment: 512
|
|
MajorOperatingSystemVersion: 6
|
|
MinorOperatingSystemVersion: 0
|
|
MajorImageVersion: 0
|
|
MinorImageVersion: 0
|
|
MajorSubsystemVersion: 6
|
|
MinorSubsystemVersion: 0
|
|
Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI
|
|
DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE ]
|
|
SizeOfStackReserve: 1048576
|
|
SizeOfStackCommit: 4096
|
|
SizeOfHeapReserve: 1048576
|
|
SizeOfHeapCommit: 4096
|
|
ExportTable:
|
|
RelativeVirtualAddress: 12345678
|
|
Size: 100
|
|
ImportTable:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
ResourceTable:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
ExceptionTable:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
CertificateTable:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
BaseRelocationTable:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
Debug:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
Architecture:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
GlobalPtr:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
TlsTable:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
LoadConfigTable:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
BoundImport:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
IAT:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
DelayImportDescriptor:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
ClrRuntimeHeader:
|
|
RelativeVirtualAddress: 0
|
|
Size: 0
|
|
header:
|
|
Machine: IMAGE_FILE_MACHINE_AMD64
|
|
Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE ]
|
|
sections:
|
|
- Name: .text
|
|
Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
|
|
VirtualAddress: 4096
|
|
VirtualSize: 1
|
|
SectionData: C3
|
|
symbols: []
|
|
...
|