File: dbgintfbasetypes.pas

package info (click to toggle)
lazarus 2.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 214,460 kB
  • sloc: pascal: 1,862,622; xml: 265,709; cpp: 56,595; sh: 3,008; java: 609; makefile: 535; perl: 297; sql: 222; ansic: 137
file content (70 lines) | stat: -rw-r--r-- 2,275 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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,
    //--------------------------------------------------------------------------
    //----------------- 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.