summaryrefslogtreecommitdiffstats
path: root/debugger/command_line_interpreter.ml
diff options
context:
space:
mode:
authorJérôme Vouillon <Jerome.Vouillon@pps.jussieu.fr>1997-03-25 15:08:47 +0000
committerJérôme Vouillon <Jerome.Vouillon@pps.jussieu.fr>1997-03-25 15:08:47 +0000
commitd4842782562cf2f54dd830d92adc75d3635c5603 (patch)
tree9fd7aaaa3b10a62c895ef5b12de7c1a6036c4bb7 /debugger/command_line_interpreter.ml
parentae49434b20ff4558ffa7fd5f0355aae2b42df32c (diff)
Les commandes print et break fonctionnent maintenant aussi tout a la
fin du programme. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1462 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'debugger/command_line_interpreter.ml')
-rw-r--r--debugger/command_line_interpreter.ml20
1 files changed, 9 insertions, 11 deletions
diff --git a/debugger/command_line_interpreter.ml b/debugger/command_line_interpreter.ml
index aa623a797..73d7035e3 100644
--- a/debugger/command_line_interpreter.ml
+++ b/debugger/command_line_interpreter.ml
@@ -297,6 +297,9 @@ let instr_next lexbuf =
next step_count;
show_current_event ()
+(* XXX Etudier instruction previous et start, symetriques de next et
+ finish. *)
+
let instr_goto lexbuf =
let time = integer_eol Lexer.lexeme lexbuf in
ensure_loaded ();
@@ -429,14 +432,10 @@ let print_expr depth ev env expr =
raise Toplevel
let print_command depth lexbuf =
- let e =
- match !selected_event with
- None -> raise Toplevel
- | Some x -> x in
let exprs = expression_list_eol Lexer.lexeme lexbuf in
ensure_loaded ();
- let env = Envaux.env_from_summary e.ev_typenv in
- List.iter (print_expr depth e env) exprs
+ let env = Envaux.env_of_event !selected_event in
+ List.iter (print_expr depth !selected_event env) exprs
let instr_print lexbuf = print_command !max_printer_depth lexbuf
@@ -499,6 +498,8 @@ let instr_info =
"\"info\" must be followed by the name of an info command.";
raise Toplevel)
+(* XXX Point d'arret sur fonction a traiter de maniere specifique
+ (il n'y a pas toujours un unique evenement en debut de fonction) *)
let instr_break lexbuf =
let argument = break_argument_eol Lexer.lexeme lexbuf in
ensure_loaded ();
@@ -513,12 +514,9 @@ let instr_break lexbuf =
| BA_pc pc -> (* break PC *)
add_breakpoint_at_pc pc
| BA_function expr -> (* break FUNCTION *)
- let ev = match !current_event with
- None -> raise Toplevel
- | Some x -> x in
- let env = Envaux.env_from_summary ev.ev_typenv in
+ let env = Envaux.env_of_event !current_event in
begin try
- let (v, ty) = Eval.expression ev env expr in
+ let (v, ty) = Eval.expression !current_event env expr in
match (Ctype.repr ty).desc with
Tarrow (_, _) ->
add_breakpoint_after_pc (Remote_value.closure_code v)