<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>www.macrobug.com</title>
	<link>http://www.macrobug.com/blog</link>
	<description>Macrobug Blog</description>
	<pubDate>Thu, 21 Aug 2008 10:34:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Stray event scanner 1.0.19 released</title>
		<link>http://www.macrobug.com/blog/2008/08/21/stray-event-scanner-1019-released/</link>
		<comments>http://www.macrobug.com/blog/2008/08/21/stray-event-scanner-1019-released/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 10:34:56 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/08/21/stray-event-scanner-1019-released/</guid>
		<description><![CDATA[There&#8217;s an updated version of the Stray Event Scanner tool available from the download page. Release notes can also be found there; mostly they&#8217;re to do with improvements to the command-line version of the tool.
]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s an updated version of the Stray Event Scanner tool available from the <a href="http://www.macrobug.com/products/strayscanner/download.php">download page</a>. Release notes can also be found there; mostly they&#8217;re to do with improvements to the command-line version of the tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/08/21/stray-event-scanner-1019-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Results of Stray Event Scanner evaluation at a customer site</title>
		<link>http://www.macrobug.com/blog/2008/08/19/results-of-stray-event-scanner-evaluation-at-a-customer-site/</link>
		<comments>http://www.macrobug.com/blog/2008/08/19/results-of-stray-event-scanner-evaluation-at-a-customer-site/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 08:35:40 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Techie]]></category>

		<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/08/19/results-of-stray-event-scanner-evaluation-at-a-customer-site/</guid>
		<description><![CDATA[As I mentioned, about a week ago I visited a customer site to find out if our Stray Event Scanner tool actually did the trick, on their codebase. That customer has kindly said I can post some results here.
Results were mixed!


Proportion of this customer&#8217;s codebase scanned
5% (estimate).


False positives reported by the tool
47


Of which
are things I [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned, about a week ago I visited a customer site to find out if our Stray Event Scanner tool actually did the trick, on their codebase. That customer has kindly said I can post some results here.</p>
<p>Results were mixed!</p>
<table border>
<tr>
<th colspan=2 align="left">Proportion of this customer&#8217;s codebase scanned</th>
<td>5% (estimate).</td>
</tr>
<tr>
<th colspan=2 align="left">False positives reported by the tool</th>
<td>47</td>
</tr>
<tr>
<th rowspan=3 align="left">Of which</th>
<th align="left">are things I might be able to fix</th>
<td>37</td>
</tr>
<tr>
<th align="left">are intrinsic limitations</th>
<td>8</td>
</tr>
<tr>
<th align="left">are already fixed in a later development version of the tool</th>
<td>2</td>
</tr>
<tr>
<td colspan=3 align="left">Interestingly, 35 of these false-positives were in one smallish area of code. It seems that some Symbian OS code conforms to the norms expected by the tool, whilst some code really gets is unnecessarily overexcited. All the rest of the code we scanned only produced 12 false-positives.</td>
</tr>
<tr>
<th colspan=2 align="left">Real bugs found by the tool</th>
<td>14</td>
</tr>
<tr>
<th rowspan=2 align="left">Of which</th>
<th align="left">tool was precise about the problem</th>
<td>6</td>
</tr>
<tr>
<th align="left">tool was wrong, or vague, about the specific problem but did identify the right bit of faulty code</th>
<td>8</td>
</tr>
<tr>
<th colspan=2 align="left">Actual bugs filed in this customer&#8217;s defect-tracking system</th>
<td>10 (because the other four were duplicates)</td>
</tr>
</table>
<p>Conclusions. Good things first&#8230;</p>
<ul>
<li>As expected, the tool found plenty of bugs. Nearly all of these bugs were real problems which could cause E32USER-CBase 46 panics under some circumstances, which are awful to diagnose.</li>
<li>In fact one of them was a duplicate of an existing E32USER-CBase 46 bug, which they&#8217;d been searching for for some time, but had been unable to find. Result!</li>
<li>The tool broadly worked as planned. There were no hopeless incompatibilities with their source code.</li>
<li>With the exception of that one component, there were far fewer false-positives than I realised.</li>
</ul>
<p>Bad things&#8230;</p>
<ul>
<li>There were lots of false-positives in that one component. Many of these will be impossible to remove using the current analysis method.</li>
<li>In some cases the tool was not very accurate about specifying exactly what was wrong with the code. It would identify the right area of code, but a lot of examination and thought was required to identify whether there really was a problem there. Again, there&#8217;s not much that can be done about this: stray event problems are intrinsically complicated and somebody technically experienced will be required to analyse the results.</li>
</ul>
<p>Next steps&#8230;</p>
<ul>
<li>See how many of those false-positives I can remove easily</li>
<li>Fix a few other minor bugs that cropped up</li>
<li>Decide whether the tool is ready to leave the beta stage!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/08/19/results-of-stray-event-scanner-evaluation-at-a-customer-site/feed/</wfw:commentRss>
		</item>
		<item>
		<title>DTrace is very good</title>
		<link>http://www.macrobug.com/blog/2008/08/18/dtrace-is-very-good/</link>
		<comments>http://www.macrobug.com/blog/2008/08/18/dtrace-is-very-good/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 09:42:53 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Techie]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/08/18/dtrace-is-very-good/</guid>
		<description><![CDATA[One of the things which would make Macrobug&#8217;s life much easier is if Symbian OS had DTrace or an equivalent. DTrace is a dynamic tracing framework which allows arbitrary APIs and function calls to be instrumented at run-time without any changes to any code. That way, the Macrobug tools would be able to hook in [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things which would make Macrobug&#8217;s life much easier is if Symbian OS had <a href="http://www.sun.com/bigadmin/content/dtrace/">DTrace</a> or an equivalent. DTrace is a dynamic tracing framework which allows arbitrary APIs and function calls to be instrumented at run-time without any changes to any code. That way, the Macrobug tools would be able to hook in and monitor what&#8217;s happening inside the device without any changes to the kernel or application binaries.</p>
<p>Such days are probably some way away, but I can look forward to it!</p>
<p>Meanwhile, just as an example of how great DTrace is on a real system, I&#8217;ve just used it to diagnose a problem with my Mac. Macs include a backup mechanism known as <a href="http://www.apple.com/macosx/features/timemachine.html">Time Machine</a>. This does incremental backups, in my case onto a RAIDed NAS server sitting elsewhere in my house (which in turn has parts of it rsync&#8217;ed to an off-site backup regularly).</p>
<p>Time Machine backs up automatically every hour in the background, and keeps as many incremental backups as it can fit onto the backup disk. There&#8217;s therefore an incentive for the backups to be smallish, as then your history will go back further. I found that most Macs seem to back up about 1-3 MB every hour, whereas mine always backed up 105-110MB. What was this mysterious file which was changing every hour that seemed to be 105MB big?</p>
<p>To diagnose this, I used Apple&#8217;s whizzy DTrace front-end, known as Instruments, to attach to the &#8220;backupd&#8221; process which does the time machine backups. I used some preset DTrace probes which can instrument the APIs used to read and write files, thus giving me lists of all the reads and writes, including their sizes, filenames, and even call stacks. And there&#8217;s even a nice UI to look at the results:</p>
<p><a href='http://www.macrobug.com/blog/wp-content/uploads/2008/08/instruments.png' title='Instruments UI'><img src='http://www.macrobug.com/blog/wp-content/uploads/2008/08/instruments.thumbnail.png' alt='Instruments UI' /></a></p>
<p>The mysterious 105MB file turned out to be the article database for my <a href="http://vienna-rss.sourceforge.net/">RSS reader</a>. It appears that they store all the articles in one file (<tt>messages.db</tt>) instead of many small ones. So, each time it refreshes (more than once per hour) the file changes, and Time Machine chooses to back it up.</p>
<p>So, the solution is simple - check whether there&#8217;s a fixed version of Vienna, or move to a new RSS reader, or tell Time Machine to ignore this file.</p>
<p>As for Symbian, perhaps there will be something like DTrace one day! I can&#8217;t wait!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/08/18/dtrace-is-very-good/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PIPS on Motorola Z8</title>
		<link>http://www.macrobug.com/blog/2008/08/15/pips-on-motorola-z8/</link>
		<comments>http://www.macrobug.com/blog/2008/08/15/pips-on-motorola-z8/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:06:37 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Techie]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/08/15/pips-on-motorola-z8/</guid>
		<description><![CDATA[PIPS is Symbian&#8217;s newish POSIX API layer. On the whole it&#8217;s pretty good; the APIs work well, although there is not much support for &#8220;related issues&#8221; such as building using GNU autoconf, link-by-name, and interfacing with other Symbian code.
However, PIPS 1.3 doesn&#8217;t work on Motorola phones. This means a customer of mine can&#8217;t release their [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.symbian.com/wiki/display/pub/P.I.P.S.">PIPS</a> is Symbian&#8217;s newish POSIX API layer. On the whole it&#8217;s pretty good; the APIs work well, although there is not much support for &#8220;related issues&#8221; such as building using GNU autoconf, link-by-name, and interfacing with other Symbian code.</p>
<p>However, PIPS 1.3 doesn&#8217;t work on Motorola phones. This means a customer of mine can&#8217;t release their software for Motorola devices, and the same will apply to many others I&#8217;m sure.</p>
<p>So, for the record, here&#8217;s Motorola&#8217;s explanation:</p>
<p>&#8220;We found that PIPS 1.3 is not supported with Motorola Z8 devices as no manufacturing capabilities are supported with Z8 in order to install PIPS 1.3 Software applications.We no longer intend to support with Z8.&#8221;</p>
<p>&#8220;However we are evaluating to support with our future UIQ devices for PIPS 1.3 Software application installation. Hopefully we will support.&#8221;</p>
<p>That&#8217;s nice, then!</p>
<p>(In all fairness, contrary to what Motorola Developer Support say above, I&#8217;ve been told from other sources that this is a temporary situation, and PIPS should work again on all Motorola phones - including the Z8 - in due course.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/08/15/pips-on-motorola-z8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Carbide.c++ and Qt</title>
		<link>http://www.macrobug.com/blog/2008/08/13/carbidec-and-qt/</link>
		<comments>http://www.macrobug.com/blog/2008/08/13/carbidec-and-qt/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 16:36:05 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Techie]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/08/13/carbidec-and-qt/</guid>
		<description><![CDATA[The Carbide.c++ team has released the first Milestone release of Carbide.c++ 2.0.
There are two interesting things about this release.
The first is that an indexer bug has been fixed to work with templated types. Symbian OS descriptors are usually templated types, and so this is a big deal. It means a lot of features now work [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tools.ext.nokia.com/download/beta_build.php">The Carbide.c++ team has released the first Milestone release of Carbide.c++ 2.0.</a></p>
<p>There are two interesting things about this release.</p>
<p>The first is that an indexer bug has been fixed to work with templated types. Symbian OS descriptors are usually templated types, and so this is a big deal. It means a lot of features now work with Symbian APIs which previously didn&#8217;t - such as the call hierarchy, F3 to open definition, etc.</p>
<p>Just like in previous Carbide.c++ versions, when Carbide can&#8217;t understand your code, the code is shown in grey. The difference is that in previous Carbide builds it was probably a Carbide bug, whereas now it&#8217;s 99% likely to be a bug in your code. Several times now I&#8217;ve thought to myself, &#8220;oh, that code looks fine, Carbide must be imagining it&#8221; and sure enough, the indexer is right, I&#8217;ve messed something up.</p>
<p>For those reasons alone I wholeheartedly recommend joining the Carbide.c++ 2.0 beta and using the new version.</p>
<p>The second thing is the presence of a new perspective in Carbide.c++ - a Qt perspective. A few months ago, you might have noticed <a href="http://www.allaboutsymbian.com/news/item/6620_Nokia_to_acquire_Trolltech.php">Nokia bought Trolltech</a>, the makers of Qt. At the time there was speculation about what Nokia would do. Would they port Qt on top of S60? Would they replace S60? Would they start to make Linux/QT phones?</p>
<p>Well, the first answers are beginning to appear in this version of Carbide.c++. For example, the Qt perspective has editors for Qt actions, properties, objects, slots and widgets. That seems a lot to me, and although these views appear to belong to a <tt>com.trolltech.qtcppdesigner</tt> package and therefore aren&#8217;t produced by the Carbide.c++ team, it looks like a lot of the effort in Carbide.c++ 2.0 has gone into Qt work as well as Symbian work. I may be wrong!</p>
<p>Also, the Qt perspective doesn&#8217;t show the Symbian Project Navigator view. There&#8217;s nothing in that view which is specific to Symbian UIs - it&#8217;s all about the Symbian build system. That suggests to me that whatever Qt stuff is going to be happening in Carbide.c++ 2.0, it will not involve the Symbian build system, which in turn means it&#8217;s based on Linux (or something) rather than Symbian.</p>
<p>Again, I may be wrong, but that&#8217;s my prediction. It looks to me like Carbide.c++ is going to turn into a dual-purpose tool: Qt/Linux as well as S60/Symbian, rather than Qt-on-Symbian. It will be interesting to find out if I&#8217;m completely off the mark.</p>
<p>(Incidentally, this leads onto another vague interest of mine - getting the cross-platform make system <a href="http://www.cmake.org/">cmake</a> to generate Symbian OS MMP and bld.inf files. I vaguely plan to investigate that one day, but haven&#8217;t yet. I believe that KDE uses cmake, which suggests it&#8217;s popular in the Qt world. If there <em>is</em> any crossover, perhaps that&#8217;s been done somewhere already.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/08/13/carbidec-and-qt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New release of stray event scanner tool: 1.0.18</title>
		<link>http://www.macrobug.com/blog/2008/08/10/new-release-of-stray-event-scanner-tool-1018/</link>
		<comments>http://www.macrobug.com/blog/2008/08/10/new-release-of-stray-event-scanner-tool-1018/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 20:58:31 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Techie]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/08/10/new-release-of-stray-event-scanner-tool-1018/</guid>
		<description><![CDATA[This clears up a few bugs, displays the conditions more nicely, and makes things quicker. Use Carbide&#8217;s built-in software update to fetch the new version.
]]></description>
			<content:encoded><![CDATA[<p>This clears up a few bugs, displays the conditions more nicely, and makes things quicker. Use Carbide&#8217;s built-in software update to fetch the new version.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/08/10/new-release-of-stray-event-scanner-tool-1018/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Off to demonstrate tomorrow&#8230;</title>
		<link>http://www.macrobug.com/blog/2008/08/10/off-to-demonstrate-tomorrow/</link>
		<comments>http://www.macrobug.com/blog/2008/08/10/off-to-demonstrate-tomorrow/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 20:43:39 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/08/10/off-to-demonstrate-tomorrow/</guid>
		<description><![CDATA[A customer has given me a contract to deploy my tools on their codebase, to see whether they come up with useful results. After that, maybe they&#8217;ll talk about licencing the tool&#8230; very exciting! But of course I&#8217;ve failed to fix all the things I had wanted to fix in the time leading up to [...]]]></description>
			<content:encoded><![CDATA[<p>A customer has given me a contract to deploy my tools on their codebase, to see whether they come up with useful results. After that, maybe they&#8217;ll talk about licencing the tool&#8230; very exciting! But of course I&#8217;ve failed to fix all the things I had wanted to fix in the time leading up to this demonstration, so I know it won&#8217;t meet their criteria, quite. Sugar!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/08/10/off-to-demonstrate-tomorrow/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tough bugs</title>
		<link>http://www.macrobug.com/blog/2008/07/15/tough-bugs/</link>
		<comments>http://www.macrobug.com/blog/2008/07/15/tough-bugs/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 09:07:39 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Techie]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/07/15/tough-bugs/</guid>
		<description><![CDATA[I&#8217;m still working on fixing the remaining known problems in Macrobug&#8217;s Stray Event Scanner.
I don&#8217;t intend to try to make it perfect - because, when understanding code, there&#8217;s always an exponential effort required to understand the rarest features. For example, the tool will never support the C goto keyword where it skips backwards up a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still working on fixing the remaining known problems in Macrobug&#8217;s <a href="http://www.macrobug.com/products/strayscanner/">Stray Event Scanner</a>.</p>
<p>I don&#8217;t intend to try to make it perfect - because, when understanding code, there&#8217;s always an exponential effort required to understand the rarest features. For example, the tool will never support the C <tt>goto</tt> keyword where it skips backwards up a function. (The tool already supports forward <tt>goto</tt>s!)</p>
<p>But, I do want to enhance support for a few more things. For example, if code Leaves, it currently considers what happens when the code either leaves or it doesn&#8217;t. That&#8217;s usually correct, apart from when functions are used which are always guaranteed to leave (for example, <tt>User::Leave</tt>). Then the tool should only consider the code path which occurs if the function does leave, and any errors after that should not be reported (until of course the leave is trapped). Unfortunately, this is tricker than it sounds given the tool&#8217;s current architecture.</p>
<p>In short, I think I&#8217;ve fixed most of the easy bugs and I&#8217;m now facing the exponential curve of tricky obscure things to fix! Let&#8217;s see how far up that curve I get before giving up and rolling back down again. I want to make the tool output as good as possible, but it&#8217;s already much better than having no means to detect these problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/07/15/tough-bugs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Stray Event Scanner Launched</title>
		<link>http://www.macrobug.com/blog/2008/07/09/stray-event-scanner-launched/</link>
		<comments>http://www.macrobug.com/blog/2008/07/09/stray-event-scanner-launched/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 17:06:11 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Techie]]></category>

		<category><![CDATA[Business]]></category>

		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/07/09/stray-event-scanner-launched/</guid>
		<description><![CDATA[Macrobug is proud to present its first product for actual sale: the Stray Event Scanner. This is a source code analysis tool which does one thing, and does it well: it finds the causes of the dreaded Stray Event panic. Why are they dreaded? Well, by the time the crash has happened, the reason is [...]]]></description>
			<content:encoded><![CDATA[<p>Macrobug is proud to present its first product for actual sale: the Stray Event Scanner. This is a source code analysis tool which does one thing, and does it well: it finds the causes of the dreaded Stray Event panic. Why are they dreaded? Well, by the time the crash has happened, the reason is lost in the mists of time, so there&#8217;s no way to diagnose them except to read reams of source code and spot the mistake.</p>
<p>The <a href="/products/strayscanner/">Macrobug Stray Event Scanner</a> does that for you. It uses <a href="http://www.gccxml.org/">GCCXML</a> to build your source code, and then analyses the results to ensure that each any every time you make a request, you are somehow getting ready for the reply to be received.</p>
<p><a href='http://www.macrobug.com/blog/wp-content/uploads/2008/04/problemmarker.png' title='Problem marker from Stray Event Scanner'><img src='http://www.macrobug.com/blog/wp-content/uploads/2008/04/problemmarker.png' alt='Problem marker from Stray Event Scanner' width=450 height=34/></a></p>
<p><small>And yes, the problem messages are so descriptive they don&#8217;t even fit on this website.</small></p>
<p><a href="/products/strayscanner/download.php">Download the demonstration version now</a>, or <a href="/products/strayscanner/purchase.php">buy the real one</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/07/09/stray-event-scanner-launched/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Crashing - how not to do it</title>
		<link>http://www.macrobug.com/blog/2008/07/09/crashing-how-not-to-do-it/</link>
		<comments>http://www.macrobug.com/blog/2008/07/09/crashing-how-not-to-do-it/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 17:06:01 +0000</pubDate>
		<dc:creator>Adrian Taylor</dc:creator>
		
		<category><![CDATA[Business]]></category>

		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.macrobug.com/blog/2008/07/09/crashing-how-not-to-do-it/</guid>
		<description><![CDATA[If you&#8217;re a Symbian OS device creator (that means, you make phones) you&#8217;ll want to read this paper. It includes interesting statistics about which crashes occur most often during the device creation process, and tips about which products can identify them early using source code analysis. Of course, the conclusion is, you should buy our [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a Symbian OS device creator (that means, you make phones) you&#8217;ll want <a href="/articles/PanicWhitePaper.pdf">to read this paper</a>. It includes interesting statistics about which crashes occur most often during the device creation process, and tips about which products can identify them early using source code analysis. Of course, the conclusion is, you should buy <a href="/products/strayscanner/">our new product</a> – but also, you should buy Coverity™ or Klocwork™!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macrobug.com/blog/2008/07/09/crashing-how-not-to-do-it/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
