mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 11:00:01 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.2 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;
 | 
						|
  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,
 | 
						|
    //--------------------------------------------------------------------------
 | 
						|
    //----------------- 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.
 | 
						|
 |