home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / lang / tcl / 1810 < prev    next >
Encoding:
Text File  |  1992-11-11  |  2.7 KB  |  55 lines

  1. Newsgroups: comp.lang.tcl
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!menudo.uh.edu!sugar!karl
  3. From: karl@NeoSoft.com (Karl Lehenbauer)
  4. Subject: Re: Dumping/Restoring Interpreter Memory
  5. Organization: NeoSoft Communications Services -- (713) 684-5900
  6. Distribution: usa
  7. Date: Thu, 12 Nov 1992 06:54:30 GMT
  8. Message-ID: <BxLCJ1.Mw2@NeoSoft.com>
  9. Keywords: dump restore tcl interpreter
  10. References: <1992Nov11.163524.12633@stortek.com>
  11. Lines: 42
  12.  
  13. In article <1992Nov11.163524.12633@stortek.com> v043332@gandalf.stortek.com (Keith Amann) writes:
  14. >I have noted that the tclTest program has a function call to
  15. >Tcl_DumpActiveMemory, but can't seem to locate this function (John, is this
  16. >not included in the regular distribution?).  I believe that this is part of
  17. >what I am looking for, and I could probably derive the "restore" given this
  18. >piece of it.
  19. >Any helpful hints or suggestions would be greatly appreciated.  Also, I would
  20. >prefer something that DOES NOT utilize Extended TCL (no offense intended, I
  21. >just happen to like to stick to the original).
  22.  
  23. No offense taken, but pity you feel that way about Extended Tcl -- files, 
  24. arrays and, yes, this Tcl_DumpActiveMemory function you are interested in 
  25. originated there.
  26.  
  27. Unfortunately for your purposes, Tcl_DumpActiveMemory is part of the
  28. memory tracking package that, when compiled in, can detect corruption
  29. problems, usually identifying the filenames and line numbers that
  30. malloc'ed the areas that became corrupted.  Also stuff like freeing
  31. twice, freeing things that weren't allocated, and such, are detected.
  32.  
  33. Tcl_DumpActiveMemory can be called at the end of a session and, if there 
  34. are any mallocs that did not have corresponding frees, the filenames, line 
  35. numbers and sizes of the mallocs are printed -- very, very useful for
  36. finding memory leaks.
  37.  
  38. As for your plan of traversing the interpreter and grabbing off all of
  39. the memory, well, it looks possible, but possibly quite difficult.  
  40. Although of course being able to save and restore state on an interpreter-
  41. by-interpreter basis would be better, something easier to try might be the 
  42. trick where you force a coredump after loading everything and patch up the 
  43. image to make it executable again.  Perl has a similar capability -- you 
  44. might have a look at how they did.
  45.  
  46. With X-windows, though, you'd have to save off before you started much
  47. in the way of X initialization -- surely you'd have to save sometime
  48. before starting to communicate with the server.  Consider open files
  49. and data stashed away by other functions behind your back by the C
  50. library as well.
  51. -- 
  52. -- Email info@NeoSoft.com for info on getting interactive Internet access.
  53. "It took no computation to dance to the rock 'n roll station."
  54. -- VU
  55.