Files
BinaryObjectScanner/BurnOutSharp.Models/LinearExecutable/DebugInformation.cs

39 lines
1.6 KiB
C#
Raw Normal View History

2022-11-04 16:04:01 -07:00
using System.Runtime.InteropServices;
namespace BurnOutSharp.Models.LinearExecutable
{
/// <summary>
/// The debug information is defined by the debugger and is not controlled by
/// the linear EXE format or linker. The only data defined by the linear EXE
/// format relative to the debug information is it's offset in the EXE file and
/// length in bytes as defined in the linear EXE header.
///
/// To support multiple debuggers the first word of the debug information is a
/// type field which determines the format of the debug information.
/// </summary>
/// <see href="https://faydoc.tripod.com/formats/exe-LE.htm"/>
/// <see href="http://www.edm2.com/index.php/LX_-_Linear_eXecutable_Module_Format_Description"/>
[StructLayout(LayoutKind.Sequential)]
2022-12-27 17:12:55 -08:00
public sealed class DebugInformation
2022-11-04 16:04:01 -07:00
{
/// <summary>
/// The signature consists of a string of three (3) ASCII characters: "NB0"
/// </summary>
2022-12-28 10:31:28 -08:00
public string Signature;
2022-11-04 16:04:01 -07:00
/// <summary>
/// This defines the type of debugger data that exists in the remainder of the
/// debug information.
/// </summary>
public DebugFormatType FormatType;
2023-01-11 11:44:13 -08:00
/// <summary>
/// The format of the debugger data is defined by the debugger that is being used.
/// The values defined for the type field are not enforced by the system. It is
/// the responsibility of the linker or debugging tools to follow the convention
/// for the type field that is defined here.
/// </summary>
public byte[] DebuggerData;
2022-11-04 16:04:01 -07:00
}
}