[futurebasic] Re: [FB] QuiXample update

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : February 2006 : Group Archive : Group : All Groups

From: Robert Purves <robert.purves@...>
Date: Fri, 10 Feb 2006 21:51:20 +1300
Alain Pastor wrote:

> Yesterday, Robert Purves told me that QuiXample was producing error  
> messages in the Console.log. For some reason, I couldn't see this  
> on my computer. I suppose RP has done something on his machine, or  
> perhaps that's me who did something on mine and I don't remember  
> what, but I couldn't get the log he e-mailed me. QuiXample was  
> improperly releasing handles not allocated; one at startup and  
> three on quitting. Those errors are non fatal, they are much more  
> like warnings. Anyway, it was not clean. RP has helped me to track  
> the bugs from New Zeland, that was funny, but to say the truth, it  
> was not really hard to spot them. So, I have uploaded a new package  
> last night.
>
> Now, If you have an idea on why I don't get the same Console log  
> file as RP, I'd be interested. As Per Robert, running a mere  
> statement like Def DebugStr("test") should produce an error message  
> in that log. Do you see this at your side?

For the record, examining console.log (which is normally the default  
log file shown by Console.app) is an easy way to spot certain bugs in  
an OS X application.

Running QuiXample 1.7 caused messages like this to appear:

QuiXample(622,0x182ac00) malloc: ***  Deallocation of a pointer not  
malloced: 0xffffffff; This could be a double free(), or free() called  
with the middle of an allocated block; Try setting environment  
variable MallocHelp to see tools to help debug

A little further study suggested that the messages were due calling  
to DisposeHandle (or def DisposeH) on an invalid Handle, and Alain  
fixed these minor bugs without much effort.



In a another use of Console, you can deliberately write log messages  
as part of a general debugging approach:
'------------
DebugStr( "Whew, got here before crashing!" )
'------------

For obvious reasons I prefer to suppress such log entries from my  
release applications, and wrap them with #if/#endif:
'-------------
_debugMessages = 1 // 0 to suppress, non-zero to show

#if _debugMessages
DebugStr( "Embarrassing message from MyStupidApp" )
#endif
'-------------

It remains unexplained why Alain cannot see the console.log file in  
Console.app.

Robert P.