diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-22 08:33:55 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-01-22 08:33:55 +0000 |
commit | 439224a5904411b288e441096e21a41244ddd1d6 (patch) | |
tree | a471f6b0e76c590f04579e62d1834c915b9eb322 /error.c | |
parent | e5850a80d69531be3c62468b7c88d91f30b0490b (diff) |
RUBY_ASSERT
* error.c (rb_assert_failure): assertion with stack dump.
* ruby_assert.h (RUBY_ASSERT): new header for the assertion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'error.c')
-rw-r--r-- | error.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -11,6 +11,7 @@ #include "internal.h" #include "ruby/st.h" +#include "ruby_assert.h" #include "vm_core.h" #include <stdio.h> @@ -499,6 +500,18 @@ rb_compile_bug_str(VALUE file, int line, const char *fmt, ...) abort(); } +void +rb_assert_failure(const char *file, int line, const char *name, const char *expr) +{ + FILE *out = stderr; + fprintf(out, "Assertion Failed: %s:%d:", file, line); + if (name) fprintf(out, "%s:", name); + fprintf(out, "%s\n%s\n\n", expr, ruby_description); + rb_vm_bugreport(NULL); + bug_report_end(out); + die(); +} + static const char builtin_types[][10] = { "", /* 0x00, */ "Object", |