Add prog path in render data

This commit is contained in:
Théophile Bastian 2019-11-18 13:58:47 +01:00
parent caac87e70a
commit e918374675
4 changed files with 25 additions and 9 deletions

View File

@ -86,8 +86,8 @@ let _ =
line_info ;
) elf_handles ;
let multi_render_data = List.map (fun (ElfHandle(_, _, static_info, asm)) ->
let render_data = Renderer.init_render_data asm in
let multi_render_data = List.map (fun (ElfHandle(path, _, static_info, asm)) ->
let render_data = Renderer.init_render_data asm path in
let line_info = static_info.ds_evaluated_line_info in
let boxed_render_data = add_line_boxes render_data line_info in
boxed_render_data

View File

@ -39,13 +39,20 @@ let render_prog_box annotated_prog = Jingoo.Jg_types.(Renderer.AnnotAsm.(
|> box_list
))
let render_progs_box annotated_progs =
List.map render_prog_box annotated_progs
|> Jingoo.Jg_types.box_list
let render_progs_box annotated_progs = Jingoo.Jg_types.(
List.map (fun (prog_path, annotated_prog) ->
[
("path", box_string prog_path);
("prog", render_prog_box annotated_prog)
] |> box_obj)
annotated_progs
|> box_list
)
(** [render multi_render_data] renders the given [render_data] to a string. *)
let render multi_render_data = Jingoo.(
let annotated_progs = List.map (fun render_data ->
render_data.Renderer.render_prog_path,
Renderer.render_data_to_annotated_asm render_data) multi_render_data in
let models = [
("progs", render_progs_box annotated_progs);

View File

@ -20,6 +20,11 @@
border: 1px solid #9584ff;
}
.progpath {
text-align: center;
font-size: 1.3em;
}
.subroutine {
margin: 20px 0;
}
@ -48,9 +53,10 @@
</head>
<body>
<div class="prog_container">
{% for subroutines in progs %}
{% for prog in progs %}
<div class="prog">
{% for subroutine in subroutines %}
<h2 class="progpath">{{ prog.path }}</h2>
{% for subroutine in prog.prog %}
<div class="subroutine">
<div class="sub_headline">
<span class="addr">{{ subroutine.sub_addr }}</span>

View File

@ -17,6 +17,7 @@ type tag_addr_range_t = TaggedRange of addr_range_tag_t * addr_range_t *
box_data_t
type render_data_t = {
render_prog_path : string ;
render_prog : RawAsm.asm_info_t ;
render_boxes : tag_addr_range_t list ;
render_prev_address : RawAsm.addr_t RawAsm.AddrMap.t
@ -51,8 +52,10 @@ let make_prev_address prog =
addr_map
(** Initializes a rendering data structure on the given program *)
let init_render_data prog =
{ render_prog = prog ;
let init_render_data prog path =
{
render_prog_path = path ;
render_prog = prog ;
render_boxes = [] ;
render_prev_address = make_prev_address prog ;
}