heap_dump 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|