src/Pure/ML-Systems/ml_debugger_dummy.ML
author wenzelm
Thu, 16 Jul 2015 11:10:57 +0200
changeset 60729 f5989a2c1f67
child 60730 02c2860fcf30
permissions -rw-r--r--
ML debugger interface;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
60729
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/ML/ml_debugger_dummy.ML
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     3
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     4
ML debugger interface -- dummy version.
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     5
*)
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     6
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     7
signature ML_DEBUGGER =
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     8
sig
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
     9
  type compiler_parameters
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    10
  val compiler_parameters: compiler_parameters
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    11
  type location
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    12
  val on_entry: (string * location -> unit) option -> unit
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    13
  val on_exit: (string * location -> unit) option -> unit
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    14
  val on_exit_exception: (string * location -> exn -> unit) option -> unit
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    15
  val on_break_point: (location * bool Unsynchronized.ref -> unit) option -> unit
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    16
  type state
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    17
  val state: Thread.thread -> state list
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    18
  val debug_function: state -> string
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    19
  val debug_function_arg: state -> ML_Name_Space.valueVal
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    20
  val debug_function_result: state -> ML_Name_Space.valueVal
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    21
  val debug_location: state -> location
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    22
  val debug_name_space: state -> ML_Name_Space.T
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    23
end;
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    24
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    25
structure ML_Debugger: ML_DEBUGGER =
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    26
struct
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    27
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    28
(* compiler parameters *)
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    29
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    30
type compiler_parameters = unit;
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    31
val compiler_parameters = ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    32
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    33
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    34
(* hooks *)
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    35
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    36
type location = unit;
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    37
fun on_entry _ = ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    38
fun on_exit _ = ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    39
fun on_exit_exception _ = ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    40
fun on_break_point _ = ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    41
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    42
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    43
(* debugger *)
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    44
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    45
fun fail () = raise Fail "No debugger support on this ML platform";
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    46
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    47
type state = unit;
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    48
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    49
fun state _ = [];
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    50
fun debug_function () = fail ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    51
fun debug_function_arg () = fail ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    52
fun debug_function_result () = fail ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    53
fun debug_location () = fail ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    54
fun debug_name_space () = fail ();
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    55
f5989a2c1f67 ML debugger interface;
wenzelm
parents:
diff changeset
    56
end;