heap_dump 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/heap_dump/heap_dump.c +17 -12
- data/lib/heap_dump/version.rb +1 -1
- metadata +7 -7
data/ext/heap_dump/heap_dump.c
CHANGED
@@ -434,7 +434,8 @@ static int dump_method_entry_i(ID key, const rb_method_entry_t *me, st_data_t da
|
|
434
434
|
return ST_CONTINUE;
|
435
435
|
}
|
436
436
|
|
437
|
-
static int dump_iv_entry(
|
437
|
+
static int dump_iv_entry(ID key, VALUE value, walk_ctx_t *ctx){
|
438
|
+
yg_cstring(rb_id2name(key));
|
438
439
|
yg_id(value);
|
439
440
|
return ST_CONTINUE;
|
440
441
|
}
|
@@ -626,14 +627,18 @@ static inline void walk_live_object(VALUE obj, walk_ctx_t *ctx){
|
|
626
627
|
case T_OBJECT:
|
627
628
|
yg_cstring("class");
|
628
629
|
yg_id(rb_class_of(obj));
|
629
|
-
yg_cstring("refs"); //ivars
|
630
|
-
yajl_gen_array_open(ctx->yajl);
|
631
|
-
{
|
632
|
-
long i, len = ROBJECT_NUMIV(obj);
|
633
|
-
VALUE *ptr = ROBJECT_IVPTR(obj);
|
634
|
-
for (i = 0; i < len; i++) yg_id(*ptr++);
|
635
|
-
}
|
636
|
-
yajl_gen_array_close(ctx->yajl);
|
630
|
+
// yg_cstring("refs"); //ivars
|
631
|
+
// yajl_gen_array_open(ctx->yajl);
|
632
|
+
// {
|
633
|
+
// long i, len = ROBJECT_NUMIV(obj);
|
634
|
+
// VALUE *ptr = ROBJECT_IVPTR(obj);
|
635
|
+
// for (i = 0; i < len; i++) yg_id(*ptr++);
|
636
|
+
// }
|
637
|
+
// yajl_gen_array_close(ctx->yajl);
|
638
|
+
yg_cstring("ivs");
|
639
|
+
yajl_gen_map_open(ctx->yajl); //TODO: what are iv keys?
|
640
|
+
rb_ivar_foreach(obj, dump_iv_entry, (st_data_t)ctx);
|
641
|
+
yajl_gen_map_close(ctx->yajl);
|
637
642
|
break;
|
638
643
|
|
639
644
|
case T_ICLASS:
|
@@ -660,10 +665,10 @@ static inline void walk_live_object(VALUE obj, walk_ctx_t *ctx){
|
|
660
665
|
|
661
666
|
if (RCLASS_EXT(obj)){
|
662
667
|
if(RCLASS_IV_TBL(obj) && RCLASS_IV_TBL(obj)->num_entries > 0){
|
663
|
-
yg_cstring("
|
664
|
-
|
668
|
+
yg_cstring("ivs");
|
669
|
+
yajl_gen_map_open(ctx->yajl); //TODO: what are iv keys?
|
665
670
|
st_foreach(RCLASS_IV_TBL(obj), dump_iv_entry, (st_data_t)ctx);
|
666
|
-
|
671
|
+
yajl_gen_map_close(ctx->yajl);
|
667
672
|
}
|
668
673
|
|
669
674
|
#if 0
|
data/lib/heap_dump/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heap_dump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-05-29 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ruby-internal
|
16
|
-
requirement: &
|
16
|
+
requirement: &70147118245260 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.8.5
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70147118245260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: yajl-ruby
|
27
|
-
requirement: &
|
27
|
+
requirement: &70147118244680 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '1.1'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70147118244680
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake-compiler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70147118244180 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70147118244180
|
47
47
|
description: dump ruby 1.9 heap contents
|
48
48
|
email:
|
49
49
|
- vasilyfedoseyev@gmail.com
|