diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-15 05:50:24 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-15 05:50:24 +0000 |
commit | 7475244ec44103e00f7ffe0137cd88bb4a96b41d (patch) | |
tree | 9780e60ee3d7cc8939308e8fd862e75abc96d786 | |
parent | 584829aa814a1104205ab85cefcf245f8c118987 (diff) |
* vm_dump.c (bugreport_backtrace): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | vm_dump.c | 8 |
2 files changed, 10 insertions, 2 deletions
@@ -1,4 +1,4 @@ -Thu Apr 15 14:38:03 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> +Thu Apr 15 14:50:19 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * vm.c (vm_backtrace_each): get rid of use of malloc from signal handler by using ruby_engine_name. [ruby-core:29497] @@ -6,6 +6,8 @@ Thu Apr 15 14:38:03 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * vm_eval.c (print_backtrace): file may be nil when segfaulted in very early stage. + * vm_dump.c (bugreport_backtrace): ditto. + Thu Apr 15 11:51:49 2010 NAKAMURA Usaku <usa@ruby-lang.org> * common.mk (help): small fix. @@ -570,12 +570,18 @@ rb_vmdebug_thread_dump_state(VALUE self) static int bugreport_backtrace(void *arg, VALUE file, int line, VALUE method) { + const char *filename = NIL_P(file) ? "ruby" : RSTRING_PTR(file); if (!*(int *)arg) { fprintf(stderr, "-- Ruby level backtrace information " "----------------------------------------\n"); *(int *)arg = 1; } - fprintf(stderr, "%s:%d:in `%s'\n", RSTRING_PTR(file), line, RSTRING_PTR(method)); + if (NIL_P(method)) { + fprintf(stderr, "%s:%d:in unknown method\n", filename, line); + } + else { + fprintf(stderr, "%s:%d:in `%s'\n", filename, line, RSTRING_PTR(method)); + } return 0; } |