heap_dump 0.0.26 → 0.0.27
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/Gemfile +1 -1
- data/ext/heap_dump/heap_dump.c +13 -6
- data/lib/heap_dump/version.rb +1 -1
- metadata +3 -3
data/Gemfile
CHANGED
data/ext/heap_dump/heap_dump.c
CHANGED
@@ -68,6 +68,7 @@ static ID classid;
|
|
68
68
|
#define yg_rstring(str) yg_string(RSTRING_PTR(str), (unsigned int)RSTRING_LEN(str))
|
69
69
|
#define yg_int(i) yajl_gen_integer(ctx->yajl, i)
|
70
70
|
#define yg_double(d) (yajl_gen_double(ctx->yajl, d)==yajl_gen_invalid_number? yg_cstring("inf|NaN") : true)
|
71
|
+
#define yg_null() yajl_gen_null(ctx->yajl)
|
71
72
|
|
72
73
|
//#define yg_id(obj) yg_int(NUM2LONG(rb_obj_id(obj)))
|
73
74
|
#define yg_id(obj) yg_id1(obj,ctx)
|
@@ -507,7 +508,14 @@ static int dump_method_entry_i(ID key, const rb_method_entry_t *me, st_data_t da
|
|
507
508
|
}
|
508
509
|
|
509
510
|
static int dump_iv_entry(ID key, VALUE value, walk_ctx_t *ctx){
|
510
|
-
|
511
|
+
const char* key_str = rb_id2name(key);
|
512
|
+
if(key_str)
|
513
|
+
yg_cstring(key_str);
|
514
|
+
else{
|
515
|
+
printf("Null key! %d\n", key);
|
516
|
+
yg_cstring("___null_key___");
|
517
|
+
//yg_null();
|
518
|
+
}
|
511
519
|
yg_id(value);
|
512
520
|
return ST_CONTINUE;
|
513
521
|
}
|
@@ -1361,11 +1369,11 @@ static void dump_thread(const rb_thread_t* th, walk_ctx_t *ctx){
|
|
1361
1369
|
}
|
1362
1370
|
|
1363
1371
|
yg_cstring("local_storage");
|
1364
|
-
|
1372
|
+
yajl_gen_map_open(ctx->yajl);
|
1365
1373
|
if(th->local_storage){
|
1366
1374
|
st_foreach(th->local_storage, dump_iv_entry, (st_data_t)ctx); //?
|
1367
1375
|
}
|
1368
|
-
|
1376
|
+
yajl_gen_map_close(ctx->yajl);
|
1369
1377
|
|
1370
1378
|
// mark_event_hooks(th->event_hooks);
|
1371
1379
|
rb_event_hook_t *hook = th->event_hooks;
|
@@ -1389,9 +1397,6 @@ static void dump_machine_context(walk_ctx_t *ctx){
|
|
1389
1397
|
VALUE *stack_start, *stack_end;
|
1390
1398
|
|
1391
1399
|
|
1392
|
-
yg_cstring("registers");
|
1393
|
-
yajl_gen_array_open(ctx->yajl);
|
1394
|
-
|
1395
1400
|
FLUSH_REGISTER_WINDOWS;
|
1396
1401
|
/* This assumes that all registers are saved into the jmp_buf (and stack) */
|
1397
1402
|
rb_setjmp(save_regs_gc_mark.j);
|
@@ -1399,6 +1404,8 @@ static void dump_machine_context(walk_ctx_t *ctx){
|
|
1399
1404
|
SET_STACK_END;
|
1400
1405
|
GET_STACK_BOUNDS(stack_start, stack_end, 1);
|
1401
1406
|
|
1407
|
+
yg_cstring("registers");
|
1408
|
+
yajl_gen_array_open(ctx->yajl);
|
1402
1409
|
//mark_locations_array(objspace, save_regs_gc_mark.v, numberof(save_regs_gc_mark.v));
|
1403
1410
|
VALUE* x = save_regs_gc_mark.v;
|
1404
1411
|
unsigned long n = numberof(save_regs_gc_mark.v);
|
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.27
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10
|
12
|
+
date: 2012-11-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: debugger-ruby_core_source
|
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
105
|
version: '0'
|
106
106
|
segments:
|
107
107
|
- 0
|
108
|
-
hash: -
|
108
|
+
hash: -130654953779884601
|
109
109
|
requirements: []
|
110
110
|
rubyforge_project:
|
111
111
|
rubygems_version: 1.8.24
|