Files
swift-mirror/stdlib/public/RuntimeModule/PDB/SectionInfo.swift
Alastair Houghton acdaeef626 [Backtracing][PDB] Add PDB code and SymbolLocator.
Added the PDB reading code and also a `SymbolLocator` type that
allows us to locate symbols for a given image.

rdar://168454023
2026-02-17 10:50:55 +00:00

64 lines
2.1 KiB
Swift

//===--- FunctionInfo.swift - PDB support for Swift -----------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2025 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// Defines a structure used to hold information about a function.
//
//===----------------------------------------------------------------------===//
import Swift
public struct SectionCharacteristics: OptionSet, Sendable {
public typealias RawValue = UInt32
public var rawValue: UInt32
public init(rawValue: UInt32) {
self.rawValue = rawValue
}
public static let noPad
= SectionCharacteristics(rawValue: 0x00000008)
public static let code
= SectionCharacteristics(rawValue: 0x00000020)
public static let initializedData
= SectionCharacteristics(rawValue: 0x00000040)
public static let uninitializedData
= SectionCharacteristics(rawValue: 0x00000080)
public static let noDeferSpeculativeExecution
= SectionCharacteristics(rawValue: 0x00004000)
public static let gpRelative
= SectionCharacteristics(rawValue: 0x00008000)
public static let hasExtendedRelocations
= SectionCharacteristics(rawValue: 0x01000000)
public static let discardable
= SectionCharacteristics(rawValue: 0x02000000)
public static let notCached
= SectionCharacteristics(rawValue: 0x04000000)
public static let notPaged
= SectionCharacteristics(rawValue: 0x08000000)
public static let shared
= SectionCharacteristics(rawValue: 0x10000000)
public static let executable
= SectionCharacteristics(rawValue: 0x20000000)
public static let readable
= SectionCharacteristics(rawValue: 0x40000000)
public static let writable
= SectionCharacteristics(rawValue: 0x80000000)
}
public struct SectionInfo {
var name: String
var virtualAddress: UInt32
var size: UInt32
var characteristics: SectionCharacteristics
}