Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Valgrind detection #2

Open
kassane opened this issue Apr 17, 2024 · 1 comment
Open

Valgrind detection #2

kassane opened this issue Apr 17, 2024 · 1 comment
Labels
documentation Improvements or additions to documentation

Comments

@kassane
Copy link
Owner

kassane commented Apr 17, 2024

OS: archlinux(glibc)
Arch: x86_64 (zen3)

valgrind - Output
$ valgrind --leak-check=full --show-reachable=yes --error-limit=no --track-origins=yes ./zig-out/bin/example1
==37909== Memcheck, a memory error detector
==37909== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==37909== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==37909== Command: ./zig-out/bin/example1
==37909== 
Allocating 1024 bytes of memory...
==37909== Conditional jump or move depends on uninitialised value(s)
==37909==    at 0x10E650: GC_push_all_eager (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:1653)
==37909==    by 0x12840F: GC_with_callee_saves_pushed (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mach_dep.c:343)
==37909==    by 0x10FEAC: GC_push_regs_and_stack (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark_rts.c:912)
==37909==    by 0x10FEAC: GC_push_roots (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark_rts.c:989)
==37909==    by 0x10C620: push_roots_and_advance (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:338)
==37909==    by 0x10C620: GC_mark_some (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:420)
==37909==    by 0x11EE47: GC_stopped_mark (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:892)
==37909==    by 0x11EA1A: GC_try_to_collect_inner (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:607)
==37909==    by 0x110D63: GC_init (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/misc.c:1441)
==37909==    by 0x10A681: main (in /home/kassane/gc_alloc/bdwgc-d/zig-out/bin/example1)
==37909==  Uninitialised value was created by a stack allocation
==37909==    at 0x12835D: GC_with_callee_saves_pushed (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mach_dep.c:229)
==37909== 
==37909== Conditional jump or move depends on uninitialised value(s)
==37909==    at 0x10E64B: GC_push_all_eager (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:1653)
==37909==    by 0x12840F: GC_with_callee_saves_pushed (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mach_dep.c:343)
==37909==    by 0x10FEAC: GC_push_regs_and_stack (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark_rts.c:912)
==37909==    by 0x10FEAC: GC_push_roots (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark_rts.c:989)
==37909==    by 0x10C620: push_roots_and_advance (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:338)
==37909==    by 0x10C620: GC_mark_some (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:420)
==37909==    by 0x11EE47: GC_stopped_mark (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:892)
==37909==    by 0x11EA1A: GC_try_to_collect_inner (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:607)
==37909==    by 0x110D63: GC_init (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/misc.c:1441)
==37909==    by 0x10A681: main (in /home/kassane/gc_alloc/bdwgc-d/zig-out/bin/example1)
==37909==  Uninitialised value was created by a stack allocation
==37909==    at 0x12835D: GC_with_callee_saves_pushed (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mach_dep.c:229)
==37909== 
==37909== Conditional jump or move depends on uninitialised value(s)
==37909==    at 0x10CB21: GC_mark_from (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:848)
==37909==    by 0x10C3E1: GC_mark_some (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:0)
==37909==    by 0x11EE47: GC_stopped_mark (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:892)
==37909==    by 0x11EA1A: GC_try_to_collect_inner (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:607)
==37909==    by 0x110D63: GC_init (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/misc.c:1441)
==37909==    by 0x10A681: main (in /home/kassane/gc_alloc/bdwgc-d/zig-out/bin/example1)
==37909==  Uninitialised value was created by a stack allocation
==37909==    at 0x498CD00: __libc_start_main@@GLIBC_2.34 (libc-start.c:242)
==37909== 
==37909== Conditional jump or move depends on uninitialised value(s)
==37909==    at 0x10CB46: GC_mark_from (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:858)
==37909==    by 0x10C3E1: GC_mark_some (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:0)
==37909==    by 0x11EE47: GC_stopped_mark (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:892)
==37909==    by 0x11EA1A: GC_try_to_collect_inner (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:607)
==37909==    by 0x110D63: GC_init (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/misc.c:1441)
==37909==    by 0x10A681: main (in /home/kassane/gc_alloc/bdwgc-d/zig-out/bin/example1)
==37909==  Uninitialised value was created by a stack allocation
==37909==    at 0x498CC50: (below main) (libc_start_call_main.h:29)
==37909== 
==37909== Conditional jump or move depends on uninitialised value(s)
==37909==    at 0x10CB26: GC_mark_from (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:848)
==37909==    by 0x10C3E1: GC_mark_some (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:0)
==37909==    by 0x11EE47: GC_stopped_mark (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:892)
==37909==    by 0x11EA1A: GC_try_to_collect_inner (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:607)
==37909==    by 0x110D63: GC_init (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/misc.c:1441)
==37909==    by 0x10A681: main (in /home/kassane/gc_alloc/bdwgc-d/zig-out/bin/example1)
==37909==  Uninitialised value was created by a stack allocation
==37909==    at 0x498CC50: (below main) (libc_start_call_main.h:29)
==37909== 
==37909== Conditional jump or move depends on uninitialised value(s)
==37909==    at 0x10CB41: GC_mark_from (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:858)
==37909==    by 0x10C3E1: GC_mark_some (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/mark.c:0)
==37909==    by 0x11EE47: GC_stopped_mark (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:892)
==37909==    by 0x11EA1A: GC_try_to_collect_inner (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/alloc.c:607)
==37909==    by 0x110D63: GC_init (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/misc.c:1441)
==37909==    by 0x10A681: main (in /home/kassane/gc_alloc/bdwgc-d/zig-out/bin/example1)
==37909==  Uninitialised value was created by a stack allocation
==37909==    at 0x1107C0: GC_init (.cache/zig/p/1220dd93f4ff1564d7174a0af33d647c1901fc63c4edb4f1ace710a4af1c2d65174e/misc.c:988)
==37909== 
==37909== 
==37909== HEAP SUMMARY:
==37909==     in use at exit: 0 bytes in 0 blocks
==37909==   total heap usage: 8 allocs, 8 frees, 3,096 bytes allocated
==37909== 
==37909== All heap blocks were freed -- no leaks are possible
==37909== 
==37909== For lists of detected and suppressed errors, rerun with: -s
==37909== ERROR SUMMARY: 118 errors from 6 contexts (suppressed: 0 from 0)

Suppress file (.supp)

{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_push_all_eager
   fun:GC_with_callee_saves_pushed
   fun:GC_push_regs_and_stack
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:main
}
@kassane kassane added the documentation Improvements or additions to documentation label Apr 17, 2024
@kassane
Copy link
Owner Author

kassane commented Apr 18, 2024

example3 - mix druntime with bdwgc-d:

suppression-file generated (Druntime leak)
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_push_all_eager
   fun:GC_push_current_stack
   fun:GC_with_callee_saves_pushed
   fun:GC_push_regs_and_stack
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
   fun:main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
   fun:main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_header_cache_miss
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
   fun:main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:GC_header_cache_miss
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
   fun:main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_find_header
   fun:GC_add_to_black_list_stack
   fun:GC_header_cache_miss
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:GC_find_header
   fun:GC_add_to_black_list_stack
   fun:GC_header_cache_miss
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_add_to_black_list_stack
   fun:GC_header_cache_miss
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
   fun:main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:GC_add_to_black_list_stack
   fun:GC_header_cache_miss
   fun:GC_mark_from
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_try_to_collect_inner
   fun:GC_init
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
   fun:main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_current_stack
   fun:GC_with_callee_saves_pushed
   fun:GC_push_regs_and_stack
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
   fun:GC_collect_a_little_inner
   fun:GC_start_incremental_collection
}
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_current_stack
   fun:GC_with_callee_saves_pushed
   fun:GC_push_regs_and_stack
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
   fun:GC_collect_a_little_inner
   fun:GC_start_incremental_collection
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_find_header
   fun:GC_add_to_black_list_stack
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_current_stack
   fun:GC_with_callee_saves_pushed
   fun:GC_push_regs_and_stack
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
}
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:GC_find_header
   fun:GC_add_to_black_list_stack
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_current_stack
   fun:GC_with_callee_saves_pushed
   fun:GC_push_regs_and_stack
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_add_to_black_list_stack
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_current_stack
   fun:GC_with_callee_saves_pushed
   fun:GC_push_regs_and_stack
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
   fun:GC_collect_a_little_inner
}
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:GC_add_to_black_list_stack
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_current_stack
   fun:GC_with_callee_saves_pushed
   fun:GC_push_regs_and_stack
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
   fun:GC_collect_a_little_inner
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_push_all_eager
   fun:GC_push_all_stack
   fun:GC_push_all_stack_sections
   fun:GC_push_all_stacks
   fun:GC_default_push_other_roots
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
   fun:GC_collect_a_little_inner
   fun:GC_start_incremental_collection
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_all_stack
   fun:GC_push_all_stack_sections
   fun:GC_push_all_stacks
   fun:GC_default_push_other_roots
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
   fun:GC_collect_a_little_inner
}
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_all_stack
   fun:GC_push_all_stack_sections
   fun:GC_push_all_stacks
   fun:GC_default_push_other_roots
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
   fun:GC_collect_a_little_inner
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_add_to_black_list_stack
   fun:GC_mark_and_push_stack
   fun:GC_push_all_eager
   fun:GC_push_all_stack
   fun:GC_push_all_stack_sections
   fun:GC_push_all_stacks
   fun:GC_default_push_other_roots
   fun:GC_push_roots
   fun:push_roots_and_advance
   fun:GC_mark_some
   fun:GC_stopped_mark
   fun:GC_maybe_gc
}
{
   <insert_a_suppression_name_here>
   Memcheck:ReallocZero
   fun:realloc
   fun:_D4core6thread10threadbase10ThreadBase3addFNbNiCQBuQBsQBoQBfbZv
   fun:thread_entryPoint
   fun:start_thread
   fun:clone
}
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:GC_is_black_listed
   fun:find_nonbl_hblk
   fun:GC_allochblk_nth
   fun:GC_allochblk
   fun:GC_new_hblk
   fun:GC_allocobj
   fun:GC_generic_malloc_inner_small
   fun:GC_generic_malloc_aligned
   fun:GC_malloc_kind_aligned_global
   fun:GC_malloc_kind_global
   fun:GC_malloc_kind
   fun:GC_malloc
}
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: reachable
   fun:realloc
   fun:_D4core8internal9container6common8xreallocFNbNiPvmZQe
   fun:_D4core8internal9container5array__T5ArrayTSQBp2gc11gcinterface5RangeZQBi__T10insertBackZQnMFNbNiQCcZv
   fun:_DThn16_4core8internal2gc4impl5protoQo7ProtoGC8addRangeMFNbNiPvmxC8TypeInfoZv
   fun:_D2rt6memory16initStaticDataGCFZ14__foreachbody1MFNbNiKSQCc19sections_elf_shared3DSOZi
   fun:_D2rt19sections_elf_shared3DSO7opApplyFMDFKSQBqQBqQyZiZi
   fun:rt_init
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
   fun:main
}
{
   <insert_a_suppression_name_here>
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   fun:_D4core8internal2gc4impl12conservativeQw10initializeFZCQCbQBq11gcinterface2GC
   fun:_D4core2gc8registry16createGCInstanceFAyaZCQBpQBn11gcinterface2GC
   fun:gc_init
   fun:gc_init_nothrow
   fun:_DThn16_4core8internal2gc4impl5protoQo7ProtoGC6mallocMFNbmkMxC8TypeInfoZPv
   fun:_Dmain
   fun:_D2rt6dmain212_d_run_main2UAAamPUQgZiZ6runAllMFZv
   fun:_d_run_main2
   fun:_d_run_main
   fun:main
}

Reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant