<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://50.77.162.165/mediawiki/skins/common/feed.css?207"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://50.77.162.165/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Debugging</id>
		<title>Debugging - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://50.77.162.165/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Debugging"/>
		<link rel="alternate" type="text/html" href="http://50.77.162.165/mediawiki/index.php?title=Debugging&amp;action=history"/>
		<updated>2026-04-25T04:13:26Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.15.5-7</generator>

	<entry>
		<id>http://50.77.162.165/mediawiki/index.php?title=Debugging&amp;diff=1606&amp;oldid=prev</id>
		<title>Kevin Reid:&amp;#32;copied with reformatting from http://www.eros-os.org/pipermail/e-lang/2007-October/012279.html</title>
		<link rel="alternate" type="text/html" href="http://50.77.162.165/mediawiki/index.php?title=Debugging&amp;diff=1606&amp;oldid=prev"/>
				<updated>2007-10-07T16:00:24Z</updated>
		
		<summary type="html">&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;</summary>
		<author><name>Kevin Reid</name></author>	</entry>

	</feed>