diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2021-04-04 22:50:22 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2021-04-04 22:50:22 +0000 |
commit | ae1573ac739cc075cd5823c6ac512449ca5707d4 (patch) | |
tree | 3e8217379d7f9eb8385503c63522284910721d95 /vm_backtrace.c | |
parent | fe85a3d5271c4e3aeda42ec32e9c3f9ee02b6897 (diff) |
merge revision(s) 12391cdbe11f3fbeb3b04c30b944139e5bbd9ea6: [Backport #16834]
merge revision(s) cbe4f75ef802f13d05f94e42274b65a062bd3666: [Backport
#16834]
Fix rb_profile_frame_classpath to handle module singletons
Right now `SomeClass.method` is properly named, but `SomeModule.method`
is displayed as `#<Module:0x000055eb5d95adc8>.method` which makes
profiling annoying.
---
test/-ext-/debug/test_profile_frames.rb | 40 ++++++++++++++++++++++++++++-----
version.h | 2 +-
vm_backtrace.c | 2 +-
3 files changed, 36 insertions(+), 8 deletions(-)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_backtrace.c')
-rw-r--r-- | vm_backtrace.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/vm_backtrace.c b/vm_backtrace.c index 8264018da0..2a6c5bde30 100644 --- a/vm_backtrace.c +++ b/vm_backtrace.c @@ -1402,7 +1402,7 @@ rb_profile_frame_classpath(VALUE frame) } else if (FL_TEST(klass, FL_SINGLETON)) { klass = rb_ivar_get(klass, id__attached__); - if (!RB_TYPE_P(klass, T_CLASS)) + if (!RB_TYPE_P(klass, T_CLASS) && !RB_TYPE_P(klass, T_MODULE)) return rb_sprintf("#<%s:%p>", rb_class2name(rb_obj_class(klass)), (void*)klass); } return rb_class_path(klass); |