diff options
Diffstat (limited to 'erts/emulator/beam/erl_gc.h')
-rw-r--r-- | erts/emulator/beam/erl_gc.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_gc.h b/erts/emulator/beam/erl_gc.h index 347f099fa5..6b38379192 100644 --- a/erts/emulator/beam/erl_gc.h +++ b/erts/emulator/beam/erl_gc.h @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 2007-2022. All Rights Reserved. + * Copyright Ericsson AB 2007-2023. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -169,8 +169,8 @@ Eterm erts_process_gc_info(struct process*, Uint *, Eterm **, Uint, Uint); void erts_gc_info(ErtsGCInfo *gcip); void erts_init_gc(void); -int erts_garbage_collect_nobump(struct process*, int, Eterm*, int, int); -void erts_garbage_collect(struct process*, int, Eterm*, int); +int erts_garbage_collect_nobump(struct process*, Uint, Eterm*, int, int); +void erts_garbage_collect(struct process*, Uint, Eterm*, int); void erts_garbage_collect_hibernate(struct process* p); Eterm erts_gc_after_bif_call_lhf(struct process* p, ErlHeapFragment *live_hf_end, Eterm result, Eterm* regs, Uint arity); @@ -195,4 +195,17 @@ void erts_copy_one_frag(Eterm** hpp, ErlOffHeap* off_heap, int erts_dbg_within_proc(Eterm *ptr, Process *p, Eterm* real_htop); #endif +#ifdef DEBUG +/* Validates the frame chain, ensuring that it always points within the stack + * and that no frames are skipped. */ +void erts_validate_stack(Process *p, Eterm *frame_ptr, Eterm *stack_top); +int +erts_dbg_check_heap_terms(int (*check_eterm)(Eterm), + Process *p, + Eterm *real_htop); +void +erts_dbg_check_no_empty_boxed_non_literal_on_heap(Process *p, + Eterm *real_htop); +#endif + #endif /* __ERL_GC_H__ */ |