<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://50.77.162.165/mediawiki/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Debugging - Revision history</title>
		<link>http://50.77.162.165/mediawiki/index.php?title=Debugging&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.15.5-7</generator>
		<lastBuildDate>Sat, 25 Apr 2026 04:13:33 GMT</lastBuildDate>
		<item>
			<title>Kevin Reid:&amp;#32;copied with reformatting from http://www.eros-os.org/pipermail/e-lang/2007-October/012279.html</title>
			<link>http://50.77.162.165/mediawiki/index.php?title=Debugging&amp;diff=1606&amp;oldid=prev</link>
			<guid>http://50.77.162.165/mediawiki/index.php?title=Debugging&amp;diff=1606&amp;oldid=prev</guid>
			<description>&lt;p&gt;copied with reformatting from http://www.eros-os.org/pipermail/e-lang/2007-October/012279.html&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This is an overview of ways of debugging E programs.&lt;br /&gt;
&lt;br /&gt;
==Causeway==&lt;br /&gt;
&lt;br /&gt;
[[Causeway]] is a post-mortem debugger (operating on logs produced by the program) displaying which turns caused which other turns.&lt;br /&gt;
&lt;br /&gt;
[http://www.erights.org/elang/tools/causeway/index.html]&lt;br /&gt;
&lt;br /&gt;
==Host debugging==&lt;br /&gt;
&lt;br /&gt;
E programs can be examined by the host platform ([[Java]], [[CL]], ...)'s debugging mechanisms. This is not especially pleasant in [[E-on-Java]] since the E code is interpreted, not compiled.&lt;br /&gt;
&lt;br /&gt;
==Printing==&lt;br /&gt;
&lt;br /&gt;
Good ol' &amp;quot;printf debugging&amp;quot;. Your options here are to either pass around stderr so that you can get to it in the code; or you can send messages to the tracelog with this gimmick:&lt;br /&gt;
&lt;br /&gt;
 [[throw]] &amp;lt;- (&amp;quot;your trace here&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==Virtualization==&lt;br /&gt;
&lt;br /&gt;
This is the intended full interactive debugging mechanism for E.&lt;br /&gt;
&lt;br /&gt;
A [[vat]] is created whose implementation includes debugging support — most likely, it is implemented using objects living in a normal vat. The &amp;quot;host&amp;quot; vat can therefore run code which examines the &amp;quot;debug-vat&amp;quot; objects and execution state to examine/step/modify them.&lt;br /&gt;
&lt;br /&gt;
The unique property of debugging access is that it allows the vat to be suspended and examined in the middle of a turn.&lt;br /&gt;
&lt;br /&gt;
This hasn't been done yet because it requires what [[User:Kevin Reid]] [http://www.eros-os.org/pipermail/e-lang/2007-October/012279.html called] a &amp;quot;full VM&amp;quot; implementation of E: there must be no immediate callbacks from primitive code to E objects, as that would make interruption impossible.&lt;br /&gt;
&lt;br /&gt;
[http://www.google.com/search?q=site:eros-os.org+e-lang+debug]&lt;/div&gt;</description>
			<pubDate>Sun, 07 Oct 2007 16:00:24 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://50.77.162.165/wiki/Talk:Debugging</comments>		</item>
	</channel>
</rss>