45 vfprintf(dc->
stream, format, vl);
62 switch ((c = value[i])) {
95 static inline const char *
99 #define CASE_TYPE(type) case T_##type: return #type; break
139 dump_append(dc,
", \"references\":[\"%p\"", (
void *)ref);
239 fptr =
RFILE(obj)->fptr;
265 for (i=0; i<
n; i++) {
279 for (; v != (
VALUE)vend; v += stride) {
294 dump_append(dc,
"{\"type\":\"ROOT\", \"root\":\"%s\", \"references\":[\"%p\"", category, (
void *)obj);
370 static const char filename[] =
"rubyobj";
402 static const char filename[] =
"rubyheap";
static void root_obj_i(const char *category, VALUE obj, void *data)
static VALUE objspace_dump(int argc, VALUE *argv, VALUE os)
static void dump_object(VALUE obj, struct dump_config *dc)
static void dump_append(struct dump_config *dc, const char *format,...)
VALUE rb_str_new_cstr(const char *)
VALUE rb_require(const char *)
void rb_objspace_reachable_objects_from_root(void(func)(const char *category, VALUE, void *), void *passing_data)
void rb_raise(VALUE exc, const char *fmt,...)
const char * root_category
void rb_objspace_each_objects(each_obj_callback *callback, void *data)
#define RB_OBJ_GC_FLAGS_MAX
size_t rb_obj_memsize_of(VALUE)
#define ENCODING_IS_ASCII8BIT(obj)
VALUE rb_path2class(const char *)
#define GetOpenFile(obj, fp)
#define ENCODING_GET(obj)
static unsigned char * output
static void reachable_object_i(VALUE ref, void *data)
VALUE rb_io_get_write_io(VALUE io)
static void dump_append_string_value(struct dump_config *dc, VALUE obj)
size_t rb_str_capacity(VALUE)
VALUE rb_funcallv(VALUE, ID, int, const VALUE *)
Calls a method.
VALUE rb_io_check_io(VALUE io)
#define RBASIC_CLASS(obj)
static VALUE dump_output(struct dump_config *dc, VALUE opts, VALUE output, const char *filename)
static VALUE objspace_dump_all(int argc, VALUE *argv, VALUE os)
void rb_define_module_function(VALUE module, const char *name, VALUE(*func)(ANYARGS), int argc)
Defines a module function for module.
#define HASH_PROC_DEFAULT
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
VALUE rb_assoc_new(VALUE car, VALUE cdr)
#define STRING(string, length)
VALUE rb_obj_frozen_p(VALUE)
size_t rb_obj_gc_flags(VALUE, ID[], size_t)
static int heap_i(void *vstart, void *vend, size_t stride, void *data)
static VALUE dump_result(struct dump_config *dc, VALUE output)
static const char * obj_type(VALUE obj)
const char * rb_class2name(VALUE)
struct allocation_info * objspace_lookup_allocation_info(VALUE obj)
void rb_objspace_reachable_objects_from(VALUE obj, void(func)(VALUE, void *), void *data)
const char * ruby_node_name(int node)
VALUE rb_str_vcatf(VALUE, const char *, va_list)
#define RARRAY_EMBED_FLAG
FILE * rb_io_stdio_file(rb_io_t *fptr)
const char * rb_id2name(ID id)
VALUE rb_hash_aref(VALUE, VALUE)
#define SPECIAL_CONST_P(x)
VALUE rb_define_module(const char *name)
size_t cur_obj_references
void Init_objspace_dump(VALUE rb_mObjSpace)
#define is_broken_string(str)
#define RTYPEDDATA_TYPE(v)
#define is_ascii_string(str)
rb_encoding * rb_enc_from_index(int index)