Skip to content

Commit 09ebda7

Browse files
committed
Add some mangled stabs to help debugging on Windows
1 parent cd6be20 commit 09ebda7

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/boot/be/pe.ml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -783,9 +783,25 @@ let crate_exports (sem:Semant.ctxt) : pe_export array =
783783
let export_seg (_, tab) =
784784
Array.of_list (List.map export_sym (htab_pairs tab))
785785
in
786+
787+
(* Make some fake symbol table entries to aid in debugging. *)
788+
let export_stab (node_id, fixup) =
789+
let name = Hashtbl.find sem.Semant.ctxt_all_item_names node_id in
790+
{
791+
pe_export_name_fixup = new_fixup "export name fixup";
792+
pe_export_name = "rust$" ^ (Ast.sprintf_name () name);
793+
pe_export_address_fixup = fixup
794+
}
795+
in
796+
797+
let stabs =
798+
let pairs = htab_pairs sem.Semant.ctxt_fn_fixups in
799+
Array.of_list (List.map export_stab pairs)
800+
in
801+
786802
Array.concat
787-
(List.map export_seg
788-
(htab_pairs sem.Semant.ctxt_native_provided))
803+
(stabs::(List.map export_seg
804+
(htab_pairs sem.Semant.ctxt_native_provided)))
789805
;;
790806

791807

0 commit comments

Comments
 (0)