mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
merge revision(s) 57315:
vm_dump.c: postscript_dump * vm_dump.c (postscript_dump): mention crash report log twice because important. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@57857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
04e1afd8b6
commit
9ba7e9d484
2 changed files with 51 additions and 20 deletions
|
@ -1,6 +1,6 @@
|
||||||
#define RUBY_VERSION "2.4.0"
|
#define RUBY_VERSION "2.4.0"
|
||||||
#define RUBY_RELEASE_DATE "2017-03-12"
|
#define RUBY_RELEASE_DATE "2017-03-12"
|
||||||
#define RUBY_PATCHLEVEL 22
|
#define RUBY_PATCHLEVEL 23
|
||||||
|
|
||||||
#define RUBY_RELEASE_YEAR 2017
|
#define RUBY_RELEASE_YEAR 2017
|
||||||
#define RUBY_RELEASE_MONTH 3
|
#define RUBY_RELEASE_MONTH 3
|
||||||
|
|
69
vm_dump.c
69
vm_dump.c
|
@ -922,6 +922,33 @@ rb_dump_machine_register(const ucontext_t *ctx)
|
||||||
# define rb_dump_machine_register(ctx) ((void)0)
|
# define rb_dump_machine_register(ctx) ((void)0)
|
||||||
#endif /* HAVE_PRINT_MACHINE_REGISTERS */
|
#endif /* HAVE_PRINT_MACHINE_REGISTERS */
|
||||||
|
|
||||||
|
FUNC_MINIMIZED(static void bug_important_message(FILE *out, const char *const msg, size_t len));
|
||||||
|
|
||||||
|
static void
|
||||||
|
bug_important_message(FILE *out, const char *const msg, size_t len)
|
||||||
|
{
|
||||||
|
const char *const endmsg = msg + len;
|
||||||
|
const char *p = msg;
|
||||||
|
|
||||||
|
if (!len) return;
|
||||||
|
if (isatty(fileno(out))) {
|
||||||
|
static const char red[] = "\033[;31;1;7m";
|
||||||
|
static const char green[] = "\033[;32;7m";
|
||||||
|
static const char reset[] = "\033[m";
|
||||||
|
const char *e = strchr(p, '\n');
|
||||||
|
const int w = (int)(e - p);
|
||||||
|
do {
|
||||||
|
int i = (int)(e - p);
|
||||||
|
fputs(*p == ' ' ? green : red, out);
|
||||||
|
fwrite(p, 1, e - p, out);
|
||||||
|
for (; i < w; ++i) fputc(' ', out);
|
||||||
|
fputs(reset, out);
|
||||||
|
fputc('\n', out);
|
||||||
|
} while ((p = e + 1) < endmsg && (e = strchr(p, '\n')) != 0 && e > p + 1);
|
||||||
|
}
|
||||||
|
fwrite(p, 1, endmsg - p, out);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
preface_dump(void)
|
preface_dump(void)
|
||||||
{
|
{
|
||||||
|
@ -937,26 +964,28 @@ preface_dump(void)
|
||||||
" for more details.\n"
|
" for more details.\n"
|
||||||
"Don't forget to include the above Crash Report log file in bug reports.\n"
|
"Don't forget to include the above Crash Report log file in bug reports.\n"
|
||||||
"\n";
|
"\n";
|
||||||
const char *const endmsg = msg + sizeof(msg) - 1;
|
const size_t msglen = sizeof(msg) - 1;
|
||||||
const char *p = msg;
|
#else
|
||||||
#define RED "\033[;31;1;7m"
|
const char *msg = NULL;
|
||||||
#define GREEN "\033[;32;7m"
|
const size_t msglen = 0;
|
||||||
#define RESET "\033[m"
|
|
||||||
|
|
||||||
if (isatty(fileno(stderr))) {
|
|
||||||
const char *e = strchr(p, '\n');
|
|
||||||
const int w = (int)(e - p);
|
|
||||||
do {
|
|
||||||
int i = (int)(e - p);
|
|
||||||
fputs(*p == ' ' ? GREEN : RED, stderr);
|
|
||||||
fwrite(p, 1, e - p, stderr);
|
|
||||||
for (; i < w; ++i) fputc(' ', stderr);
|
|
||||||
fputs(RESET, stderr);
|
|
||||||
fputc('\n', stderr);
|
|
||||||
} while ((p = e + 1) < endmsg && (e = strchr(p, '\n')) != 0 && e > p + 1);
|
|
||||||
}
|
|
||||||
fwrite(p, 1, endmsg - p, stderr);
|
|
||||||
#endif
|
#endif
|
||||||
|
bug_important_message(stderr, msg, msglen);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
postscript_dump(void)
|
||||||
|
{
|
||||||
|
#if defined __APPLE__
|
||||||
|
static const char msg[] = ""
|
||||||
|
"[IMPORTANT]\n"
|
||||||
|
"Don't forget to include the Crash Report log file in bug reports.\n"
|
||||||
|
"\n";
|
||||||
|
const size_t msglen = sizeof(msg) - 1;
|
||||||
|
#else
|
||||||
|
const char *msg = NULL;
|
||||||
|
const size_t msglen = 0;
|
||||||
|
#endif
|
||||||
|
bug_important_message(stderr, msg, msglen);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1080,4 +1109,6 @@ rb_vm_bugreport(const void *ctx)
|
||||||
}
|
}
|
||||||
#endif /* __FreeBSD__ */
|
#endif /* __FreeBSD__ */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
postscript_dump();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue