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.
@@ -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(st_data_t key, VALUE value, walk_ctx_t *ctx){
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("refs");
664
- yajl_gen_array_open(ctx->yajl); //TODO: what are iv keys?
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
- yajl_gen_array_close(ctx->yajl);
671
+ yajl_gen_map_close(ctx->yajl);
667
672
  }
668
673
 
669
674
  #if 0
@@ -1,3 +1,3 @@
1
1
  module HeapDump
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
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.2
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: &70106505219640 !ruby/object:Gem::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: *70106505219640
24
+ version_requirements: *70147118245260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: yajl-ruby
27
- requirement: &70106505219140 !ruby/object:Gem::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: *70106505219140
35
+ version_requirements: *70147118244680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake-compiler
38
- requirement: &70106505218720 !ruby/object:Gem::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: *70106505218720
46
+ version_requirements: *70147118244180
47
47
  description: dump ruby 1.9 heap contents
48
48
  email:
49
49
  - vasilyfedoseyev@gmail.com