I know I keep promising this


Subject: I know I keep promising this
From: Michael D. Crawford (crawford@goingware.com)
Date: Fri Feb 16 2001 - 02:29:53 CST


I've mentioned this in the past, but due to utter chaos in the life of this
consultant I haven't been able to contribute much.

I own a license to the Spotlight memory debugger for PowerPC macintosh. It
patches the binary of a Mac executable file then runs it under a debugger
in such a way that all memory references are validated before they are
performed.

It will catch a bogus - READ - that is so much as one byte outside its
allocated heap block.

Also pretty pertinent to getting the XP stuff working properly on the Mac
OS, Spotlight does "trap discipline", that is, it verifies that the
parameters passed into system calls are within the documented allowable
ranges, and it will also do a debugger break if a system call returns an
error.

And finally, it does memory leak detection. More than watching for a
general trend towards growth in your heap, it will record each allocation
with a stack crawl when it is made, and erase that record when it is
deallocated. When you quit your app, it will tell you what didn't get
deallocated.

As a longtime user of it, I wouldn't dream of shipping an application
unless it were absolutely clean under spotlight.

So anyway, I've been dusting off my Mac 8500, and installing some updated
development tools on it and stuff in preparation for some consulting work.
Once that winds down a bit I should find some time to debug AbiWord with
Spotlight. This should happen in about two weeks.

If I get steady Mac consulting work for a while (which is a good
possibility, but not completely certain), I'm going to get a dual G4 and
have a triple-boot system into OS 9.1, Mac OS X and Linux PPC.

What I will need is AbiWord for Mac able to build reasonably cleanly and
run as far as crashing. What crashing bugs there are should hopefully come
from errors that I can find for you rather than stuff just being
unimplemented.

Linux fans who want to do this kind of stuff can use Bounded Pointers for
GCC, although I'm not sure it's mature enough yet:

http://www.gnu.org/software/gcc/projects/bp/main.html

Also see my MacsBug tips and tricks page at:

http://www.goingware.com/tips/macsbug.html

Mike

Michael D. Crawford
GoingWare Inc. - Expert Software Development and Consulting
http://www.goingware.com/
crawford@goingware.com

   Tilting at Windmills for a Better Tomorrow.



This archive was generated by hypermail 2b25 : Thu Feb 15 2001 - 23:30:20 CST