Commit Graph

3 Commits

Author SHA1 Message Date
timeless%mozdev.org
a6785cc1f5 Bug 230209 Infinite loop in DRefTool because error condition was dropped on floor
r=bz
2004-01-09 10:14:47 +00:00
timeless%mozdev.org
d7ae76a730 Bug 8227 dreftool - rickg's phase 1 preventative crash maintenance
r=bernd

This is dreftool, resurrected with the help of kherron, bernd, and myself.

Licensing has been switched per http://bugzilla.mozilla.org/show_bug.cgi?id=8227#c45
to MPL/GPL/LGPL.

Old copies of xpcom classes have been removed, dreftool now uses the normal ones.

New:
* Builds on Linux and uses NSPR, so it should be possible to use it on most
systems.
* Member variables are screened.
* Tries to recognize NS_ENSURE early outs.
* Can parse a single file.
* The summary can indicate what it was told to parse.
* Links to LXR can be generated. Using this feature is not recommended as pieces of
mozilla tend to be on branches and the links will be bad. If for non branched content,
the links will drift as the files are changed.
* Links to Bonsai against the file revision will be generated if CVS records are
detected. This is good, unless you have local modifications in your tree.

Known issues:
* Aliasing isn't detected, so
|a = new something; *foo = a; if (!*foo) return NS_ERROR_FAILURE;| is flagged.
e.x.
http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/accessible/src/html/nsHTMLSelectAccessible.cpp&rev=1.33&mark=920-921,922,923,925#920

* Assigning to dereferenced objects
|*foo = new something| is not quite correctly handled (perhaps it's misinterpreted as
|foo = new something|. e.x.
http://bonsai.mozilla.org/cvsblame.cgi?file=/mozilla/extensions/transformiix/source/xslt/txStandaloneXSLTProcessor.cpp&rev=1.11&mark=88,92,96,99,84#91

* Various other allocators aren't caught: strdup and co., nsCRT::, nsMemory::, ...

* There's no way to provide a user defined list of allocators.

People should of course not file bugs simply based on dreftool, they should file bugs
after verifying that the complaints from dreftool are valid.
2003-11-12 22:38:24 +00:00
tague%netscape.com
c20dbf23de Added rickg's tool for finding dereference errors 1999-08-04 19:44:15 +00:00