aboutsummaryrefslogtreecommitdiffstats
path: root/ext/objspace/objspace_dump.c
Commit message (Collapse)AuthorAgeFilesLines
* * ext/objspace/objspace_dump.c (dump_append): avoid fflush.shyouhei2014-07-261-1/+0
| | | | | | | | | because dump_append_string_value() iterates over each chars, fflush()-ing here effectively issues system calls on every single bytes exist in a ruby process. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/objspace: Check fptr before trying to dump FILE object fdcharliesome2014-03-101-1/+2
| | | | | | Patch by Scott Francis. Closes GH-562. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace_dump.c (dump_object): use STR_SHARED_P()ko12014-02-051-1/+1
| | | | | | | | instead of removed STR_NOCAPA_P() macro. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c: remvoe STR_ASSOC related code.ko12014-02-041-2/+0
| | | | | | | | | | By r44804, string objects can not have STR_ASSOC flag. * internal.h: ditto. * ext/objspace/objspace_dump.c (dump_object): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* objspace_dump.c: include object's gc flags in dumptmm12013-12-101-0/+17
| | | | | | | | | | | | | | * ext/objspace/objspace_dump.c (dump_object): include fstring flag on strings. include gc flags (old, remembered, wb_protected) on all objects. * ext/objspace/objspace_dump.c (Init_objspace_dump): initialize lazy IDs before first use. * gc.c (rb_obj_gc_flags): new function to retrieve object flags * internal.h (RB_OBJ_GC_FLAGS_MAX): maximum flags allowed for one obj * test/objspace/test_objspace.rb (test_dump_flags): test for above * test/objspace/test_objspace.rb (test_trace_object_allocations): resolve name before dump (for rb_class_path_cached) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace_dump.c (dump_append_string_value): Escapetmm12013-11-261-1/+6
| | | | | | | | control characters for strict json parsers. * ext/objspace/objspace_dump.c (objspace_dump): Document File/IO output option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * NEWS: Add ObjectSpace.after_gc_{start,end}_hook=tmm12013-11-251-3/+3
| | | | | | * ext/objspace/objspace_dump.c: [DOC] catch up dump/dump_all to r43679 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace_dump.c: test fixes and win32 compatibilitytmm12013-11-241-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* objspace_dump.c: refine outputnobu2013-11-141-19/+19
| | | | | | | | | | | * ext/objspace/objspace_dump.c (dump_output): allow IO object as output, and use Tempfile.create and return open file instead of mkstemp() and path name for :file output. [ruby-core:58266] [Bug #9102] * test/objspace/test_objspace.rb (TestObjSpace#dump_my_heap_please): remove temporary output file. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * internal.h: move common string/hash flags to include file.tmm12013-11-111-14/+0
| | | | | | | | * ext/objspace/objspace_dump.c: remove flags shared above. * hash.c: ditto. * string.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* objspace_dump.c: fix declarationnobu2013-11-091-1/+1
| | | | | | | * ext/objspace/objspace_dump.c (dump_output): fix declaration, mkstemp() needs a writable buffer. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* objspace_dump.c: fix portability issuenobu2013-11-091-1/+12
| | | | | | | * ext/objspace/objspace_dump.c (dump_output): fix portability issue. mkstemp() may not be available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* objspace_dump.c: extract output option utilitiesnobu2013-11-091-45/+44
| | | | | | | | * ext/objspace/objspace_dump.c (dump_output, dump_result): extract output option utility functions from objspace_dump() and objspace_dump_all(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* objspace_dump.c: suppress warningsnobu2013-11-091-3/+1
| | | | | | | * ext/objspace/objspace_dump.c (dump_object): remove unused variables, and cast size_t to long. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* objspace_dump.c: indentnobu2013-11-091-91/+91
| | | | | | * ext/objspace/objspace_dump.c: adjust indent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/object_tracing.c: Add experimental methods to dumptmm12013-11-081-0/+415
objectspace as json: ObjectSpace.dump_all and ObjectSpace.dump(obj). These methods are useful for debugging reference leaks and memory growth in large ruby applications. [Bug #9026] [ruby-core:57893] [Fixes GH-423] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e