home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sources / wanted / 5035 < prev    next >
Encoding:
Internet Message Format  |  1992-11-11  |  5.6 KB

  1. Xref: sparky comp.sources.wanted:5035 comp.software-eng:4263 comp.sys.sun.apps:2462
  2. Newsgroups: comp.sources.wanted,comp.software-eng,comp.sys.sun.apps
  3. Path: sparky!uunet!cis.ohio-state.edu!magnus.acs.ohio-state.edu!csn!raven!rcd
  4. From: rcd@raven.eklektix.com (Dick Dunn)
  5. Subject: Re: Purify & Sentinel
  6. Message-ID: <1992Nov13.074039@eklektix.com>
  7. Summary: a complaint in the form of a reverse testimonial
  8. Organization: eklektix - Boulder, Colorado
  9. References: <1992Nov2.212558.28104@pure.com>
  10. Date: Fri, 13 Nov 1992 07:40:39 GMT
  11. Lines: 89
  12.  
  13. (minor flamage first, but hang in; substance follows)
  14.  
  15. hastings@pure.com (Reed Hastings) complains:
  16. >In several recent postings, the developers of Sentinel compared their
  17. >product with standard malloc debug and Purify.
  18. >
  19. >We realize that it is inappropriate for vendors to argue about their
  20. >products on the net...
  21.  
  22. ...but this doesn't stop Hastings from posting another 650 lines of
  23. advertising in three non-commercial newsgroups!  Compare this with Cahill's
  24. recent followup on the Sentinel side, which says briefly "we're sorry; we
  25. probably did overstep the bounds; we think we were fair; for anything more,
  26. use email."  If the Sentinel postings overstepped the bounds, surely a
  27. large, blatant advertisement in reply is worse--especially after admitting
  28. that commercial postings are inappropriate.
  29.  
  30. Nor is this Hastings' first serious attempt to use a non-commercial venue
  31. for advertising.  See the proceedings of the Winter 1992 USENIX Conference
  32. for Hastings' paper on Purify, which managed to get accepted in spite of
  33. USENIX's traditional stance that vendors are welcome, but thinly-veiled
  34. product announcements are not.  That paper/presentation prompted substantial
  35. complaints--somewhat about lacking detail (set aside to "proprietary tech-
  36. niques", which is roughly the technical equivalent of "executive privi-
  37. lege"), mostly about the major commercial slant.
  38.  
  39. But that's all a digression...I should be posting technical content, and I
  40. shall do so.  Unfortunately for Hastings, I only have experience with his
  41. Purify product.  I tried it under their limited-time trial-copy offer
  42. (which in itself is a laudable way to offer software).  The overall result
  43. was that, after considerable effort to interpret the output from Purify,
  44. it provided *NO* useful information--none whatsoever!  Herewith, a few
  45. details:
  46.  
  47. My major test case was one rather large C program.  It's close to 200,000
  48. lines.  It makes extensive use of dynamically allocated memory from half a
  49. dozen modules...and there are cross-references from objects in one module
  50. to objects in another.  Certain classes of errors are recovered with
  51. "longjumps" (C's non-local gotos) which invite stale pointers and memory
  52. leaks.  The program has evolved over about six years and has been adapted
  53. to radical changes in purpose/spec over its lifetime.  In short, it should
  54. be a nightmare, ripe for the sort of checking Purify is supposed to offer.
  55.  
  56. To be fair to the authors and current maintainers of this program, they're
  57. very good and the management is enlightened (to say the least), so the
  58. techies get to go in with their entropy-chainsaws and clean it up often
  59. enough.  Still, it was a big old program with substantial cruft; it was
  60. healthy but nobody in his right mind would assert that it was free of
  61. memory-handling problems.  In fact, at the point I tried Purify, we *knew*
  62. there were memory leaks and uninitialized data (verified by having fixed
  63. some of them since), and we strongly suspected there were stale pointers.
  64.  
  65. The first obstacle--which is inherent in the way Purify works; it's both a
  66. strength and a weakness--is that Purify is tied to a particular compiler.
  67. We were using gcc (because multiple platforms and cross-compilation were
  68. essential); I had to rebuild with Sun's cc and shave a bit of hair from
  69. that.  No big deal, but a vulnerable point.
  70.  
  71. The execution produced enormous amounts of output.  Almost all of it was
  72. spurious complaint, due to Purify's inability to detect the copying of
  73. "holes" in structures (i.e., the empty space left within structures to
  74. satisfy alignment constraints).  These complaints had to be investigated
  75. one at a time, and I had to develop a set of sed/awk scripts to filter them
  76. out.
  77.  
  78. This left me with a small number of complaints about apparent memory
  79. leakage which, although worth a check, really wasn't leakage ... plus one
  80. very suspicious piece of code causing complaints.  I spent on the order of
  81. hours sleuthing this one remaining problem, getting down to the level of
  82. examining generated code, trying to figure out what Purify was complaining
  83. about.  I finally resolved it to some sort of misunderstanding on Purify's
  84. part--the code generated simply wasn't quite what it expected, so it mis-
  85. diagnosed a problem.  Again, this is a soft spot for Purify; it's tied to
  86. the compiler's code-generation...and the compiler writers aren't obligated
  87. to notify the Purify folks when they change code output.
  88.  
  89. This left me with ... nothing at all!, and a fair bit of effort required
  90. to get to that nothing.  Based on that, I can't see what Purify offers
  91. to me.  For the problems it didn't find, I have to play user and say "I
  92. don't know why it didn't find them.  I'm not going to examine what it's
  93. doing internally; I just know it didn't help me."  For the false reports
  94. from structure holes, I say "I don't care if this is inevitable; it makes
  95. the reports useless.  I don't have time to filter through all this."
  96. For the one real false-positive failure, I have to say "This makes me
  97. suspicious of the technique--it's too delicately tied to the compiler's
  98. output."
  99. -- 
  100. Dick Dunn    rcd@raven.eklektix.com   -or-   raven!rcd    Boulder, Colorado
  101.     ...Simpler is better.
  102.