support RUBY_ON_BUG envval on assert failure.

Check RUBY_ON_BUG env val also on rb_assert_failure().
This commit is contained in:
Koichi Sasada 2020-01-06 15:06:03 +09:00
Родитель ce072fe568
Коммит 33d866558b
2 изменённых файлов: 12 добавлений и 11 удалений

11
error.c
Просмотреть файл

@ -580,17 +580,6 @@ bug_report_begin_valist(FILE *out, const char *fmt, va_list args)
snprintf(buf, sizeof(buf), "\n%s\n\n", ruby_description);
fputs(buf, out);
preface_dump(out);
#if RUBY_DEVEL
const char *cmd = getenv("RUBY_ON_BUG");
if (cmd) {
snprintf(buf, sizeof(buf), "%s %"PRI_PIDT_PREFIX"d", cmd, getpid());
int r = system(buf);
if (r == -1) {
snprintf(buf, sizeof(buf), "Launching RUBY_ON_BUG command failed.");
}
}
#endif
}
#define bug_report_begin(out, fmt) do { \

Просмотреть файл

@ -925,6 +925,18 @@ rb_dump_machine_register(const ucontext_t *ctx)
void
rb_vm_bugreport(const void *ctx)
{
#if RUBY_DEVEL
const char *cmd = getenv("RUBY_ON_BUG");
if (cmd) {
char buf[0x100];
snprintf(buf, sizeof(buf), "%s %"PRI_PIDT_PREFIX"d", cmd, getpid());
int r = system(buf);
if (r == -1) {
snprintf(buf, sizeof(buf), "Launching RUBY_ON_BUG command failed.");
}
}
#endif
#ifdef __linux__
# define PROC_MAPS_NAME "/proc/self/maps"
#endif