mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-03 11:03:41 +02:00
73 lines
2.4 KiB
ObjectPascal
73 lines
2.4 KiB
ObjectPascal
unit DbgIntfBaseTypes;
|
|
(* DebuggerTypes
|
|
|
|
Basic types for any Pascal debugger. (not just IDE)
|
|
|
|
*)
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils;
|
|
|
|
type
|
|
(* TDBGPtr
|
|
datatype pointing to data on the target
|
|
*)
|
|
TDBGPtr = type QWord;
|
|
PDBGPtr = ^TDBGPtr;
|
|
TDBGPtrArray = Array of TDBGPtr;
|
|
|
|
(* TDbgSymbolKind
|
|
Enum of types that a value can have.
|
|
*)
|
|
|
|
TDbgSymbolKind = (
|
|
skNone, // undefined type
|
|
skType, // Not a value, but a type description
|
|
//skUser, // userdefined type, this sym refers to another sym defined elswhere
|
|
//--------------------------------------------------------------------------
|
|
skInstance, // the main exe/dll, containing all other syms
|
|
skUnit, // contains syms defined in this unit
|
|
skProcedure, // an actual procedure, with an address // NOT just the type of a procedure
|
|
skFunction,
|
|
skProcedureRef, // a variable containing (a reference to a) procedure (some debuggers may return skProcedure)
|
|
skFunctionRef,
|
|
//--------------------------------------------------------------------------
|
|
//----------------- Basic types, these cannot have references or children
|
|
skSimple, // Any of the below (in this group), the dbg does not know more detailed
|
|
skPointer,
|
|
skInteger,
|
|
skCardinal,
|
|
skBoolean,
|
|
skChar,
|
|
skFloat,
|
|
skString,
|
|
skAnsiString,
|
|
skCurrency,
|
|
skVariant,
|
|
skWideString,
|
|
//--------------------------------------------------------------------------
|
|
skEnum, // Variable holding an enum / enum type
|
|
skEnumValue, // a single element from an enum
|
|
skSet,
|
|
//--------------------------------------------------------------------------
|
|
skRecord, // the address member is the relative location within the
|
|
skObject, // structure: type TFoo=object end; // may also be reported as record
|
|
skClass,
|
|
skInterface,
|
|
//--------------------------------------------------------------------------
|
|
skArray,
|
|
//--------------------------------------------------------------------------
|
|
skRegister, // the Address member is the register number
|
|
//--------------------------------------------------------------------------
|
|
skAddress // untyped data at an address (differs from pointer, when being typecasted)
|
|
);
|
|
|
|
|
|
implementation
|
|
|
|
end.
|
|
|