Call rb_bug_without_die when ASAN error reported
This will give us the Ruby stack trace when an ASAN error is reported.
This commit is contained in:
parent
2da70aac25
commit
79d90e7351
Notes:
git
2024-12-12 19:08:14 +00:00
12
gc.c
12
gc.c
@ -936,6 +936,14 @@ ruby_modular_gc_init(void)
|
|||||||
# define rb_gc_impl_copy_attributes rb_gc_functions.copy_attributes
|
# define rb_gc_impl_copy_attributes rb_gc_functions.copy_attributes
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef RUBY_ASAN_ENABLED
|
||||||
|
static void
|
||||||
|
asan_death_callback(void)
|
||||||
|
{
|
||||||
|
rb_bug_without_die("ASAN error");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static VALUE initial_stress = Qfalse;
|
static VALUE initial_stress = Qfalse;
|
||||||
|
|
||||||
void *
|
void *
|
||||||
@ -951,6 +959,10 @@ rb_objspace_alloc(void)
|
|||||||
rb_gc_impl_objspace_init(objspace);
|
rb_gc_impl_objspace_init(objspace);
|
||||||
rb_gc_impl_stress_set(objspace, initial_stress);
|
rb_gc_impl_stress_set(objspace, initial_stress);
|
||||||
|
|
||||||
|
#ifdef RUBY_ASAN_ENABLED
|
||||||
|
__sanitizer_set_death_callback(asan_death_callback);
|
||||||
|
#endif
|
||||||
|
|
||||||
return objspace;
|
return objspace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user