summaryrefslogtreecommitdiffstats
path: root/debugger/show_source.ml
diff options
context:
space:
mode:
Diffstat (limited to 'debugger/show_source.ml')
-rw-r--r--debugger/show_source.ml16
1 files changed, 9 insertions, 7 deletions
diff --git a/debugger/show_source.ml b/debugger/show_source.ml
index 3b7a133fe..2826c9e68 100644
--- a/debugger/show_source.ml
+++ b/debugger/show_source.ml
@@ -45,13 +45,16 @@ let show_point ev selected =
let before = (ev.ev_kind = Event_before) in
if !emacs && selected then
begin try
+ let buffer = get_buffer (Events.get_pos ev) mdle in
let source = source_of_module ev.ev_loc.Location.loc_start mdle in
printf "\026\026M%s:%i:%i" source
- ev.ev_loc.Location.loc_start.Lexing.pos_cnum
- ev.ev_loc.Location.loc_end.Lexing.pos_cnum;
+ (snd (start_and_cnum buffer ev.ev_loc.Location.loc_start))
+ (snd (start_and_cnum buffer ev.ev_loc.Location.loc_end));
printf "%s\n" (if before then ":before" else ":after")
with
- Not_found -> (* get_buffer *)
+ Out_of_range -> (* point_of_coord *)
+ prerr_endline "Position out of range."
+ | Not_found -> (* Events.get_pos || get_buffer *)
prerr_endline ("No source file for " ^ mdle ^ ".");
show_no_point ()
end
@@ -59,11 +62,10 @@ let show_point ev selected =
begin try
let pos = Events.get_pos ev in
let buffer = get_buffer pos mdle in
- let point = pos.Lexing.pos_cnum in
- let (start, line_number) = line_of_pos buffer point in
- ignore(print_line buffer line_number start point before)
+ let start, point = start_and_cnum buffer pos in
+ ignore(print_line buffer pos.Lexing.pos_lnum start point before)
with
- Out_of_range -> (* line_of_pos *)
+ Out_of_range -> (* point_of_coord *)
prerr_endline "Position out of range."
| Not_found -> (* Events.get_pos || get_buffer *)
prerr_endline ("No source file for " ^ mdle ^ ".")