<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Heisenbugs</title>
	<atom:link href="http://heisenbugs.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://heisenbugs.wordpress.com</link>
	<description>"Yet another private techie blog"</description>
	<lastBuildDate>Sun, 01 Mar 2009 18:04:30 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='heisenbugs.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Heisenbugs</title>
		<link>http://heisenbugs.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://heisenbugs.wordpress.com/osd.xml" title="Heisenbugs" />
	<atom:link rel='hub' href='http://heisenbugs.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Optimator: I&#8217;ll be back!</title>
		<link>http://heisenbugs.wordpress.com/2009/03/01/optimator-ill-be-back/</link>
		<comments>http://heisenbugs.wordpress.com/2009/03/01/optimator-ill-be-back/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 18:04:30 +0000</pubDate>
		<dc:creator>phloog</dc:creator>
				<category><![CDATA[*this]]></category>
		<category><![CDATA[Hacks & stuff]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Trace]]></category>

		<guid isPermaLink="false">http://heisenbugs.wordpress.com/?p=27</guid>
		<description><![CDATA[Ich dachte mir, dass ich gerade meine C-Tracer lib optimiere, wäre nicht interessant genug, um darüber was zu schreiben. Dann dachte ich mir, dass ich schon länger nichts geschrieben hab. Und dann dachte ich, dass ich ja schreiben kann, dass ich erwägte, etwas zu schreiben. Ja&#8230; so war das. Wenn ich fertig optimiert habe (Haha, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=27&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ich dachte mir, dass ich gerade meine C-Tracer lib optimiere, wäre nicht interessant genug, um darüber was zu schreiben. Dann dachte ich mir, dass ich schon länger nichts geschrieben hab. Und dann dachte ich, dass ich ja schreiben kann, dass ich erwägte, etwas zu schreiben.</p>
<p>Ja&#8230; so war das.</p>
<p>Wenn ich fertig optimiert habe (Haha, auch so&#8217;n Informatiker-Witz <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) melde ich mich nochmal <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Dauert wahrscheinlich etwas, muss da noch diverse Größenordnungen an Performance rausholen&#8230;!</p>
<p>-Tim</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/heisenbugs.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/heisenbugs.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/heisenbugs.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/heisenbugs.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/heisenbugs.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/heisenbugs.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/heisenbugs.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/heisenbugs.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/heisenbugs.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/heisenbugs.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/heisenbugs.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/heisenbugs.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/heisenbugs.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/heisenbugs.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=27&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://heisenbugs.wordpress.com/2009/03/01/optimator-ill-be-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb6276e37f6427b909e8c833d6b33c8d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">phloog</media:title>
		</media:content>
	</item>
		<item>
		<title>Victim und Watchdog Thread III</title>
		<link>http://heisenbugs.wordpress.com/2009/01/02/victim-und-watchdog-thread-iii/</link>
		<comments>http://heisenbugs.wordpress.com/2009/01/02/victim-und-watchdog-thread-iii/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 21:46:29 +0000</pubDate>
		<dc:creator>phloog</dc:creator>
				<category><![CDATA[Hacks & stuff]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[pthreads]]></category>
		<category><![CDATA[Trace]]></category>

		<guid isPermaLink="false">http://heisenbugs.wordpress.com/?p=19</guid>
		<description><![CDATA[Letztendlich funktioniert das System wie es soll *puh*! Die Lösung mit eigenem Opfer-Prozess musste erst wieder einer reinen Thread-Lösung weichen (Watchdog-Thread startet als Opfer einfach einen weiteren pthread). Dies funktioniert wider meiner ersten Versuche doch, wenn man es mit geeigneten Signal-Handlern kombiniert. Ich teste das System gerade eingehend, aber es sieht sehr vielversprechend aus! Beweisfoto: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=19&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Letztendlich funktioniert das System wie es soll *puh*!</p>
<p>Die Lösung mit eigenem Opfer-Prozess musste erst wieder einer reinen Thread-Lösung weichen (Watchdog-Thread startet als Opfer einfach einen weiteren pthread). Dies funktioniert wider meiner ersten Versuche doch, wenn man es mit geeigneten Signal-Handlern kombiniert.</p>
<p>Ich teste das System gerade eingehend, aber es sieht sehr vielversprechend aus!</p>
<p>Beweisfoto:</p>
<div id="attachment_23" class="wp-caption alignnone" style="width: 370px"><a href="http://heisenbugs.files.wordpress.com/2009/01/jempole00011.png"><img class="size-full wp-image-23" title="jempole00011" src="http://heisenbugs.files.wordpress.com/2009/01/jempole00011.png?w=450" alt="JEM Logviewer mit Daten aus dem ctracer"   /></a><p class="wp-caption-text">JEM Logviewer mit Daten aus dem ctracer</p></div>
<p>Durch den ctracer mit Victim/Watchdog-System ist es z.B. möglich, Membervariablen von Strukturen aufzulösen (Links unten im Bild zu sehen).</p>
<p>- Tim</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/heisenbugs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/heisenbugs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/heisenbugs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/heisenbugs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/heisenbugs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/heisenbugs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/heisenbugs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/heisenbugs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/heisenbugs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/heisenbugs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/heisenbugs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/heisenbugs.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/heisenbugs.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/heisenbugs.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=19&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://heisenbugs.wordpress.com/2009/01/02/victim-und-watchdog-thread-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb6276e37f6427b909e8c833d6b33c8d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">phloog</media:title>
		</media:content>

		<media:content url="http://heisenbugs.files.wordpress.com/2009/01/jempole00011.png" medium="image">
			<media:title type="html">jempole00011</media:title>
		</media:content>
	</item>
		<item>
		<title>I sense something&#8230;</title>
		<link>http://heisenbugs.wordpress.com/2008/12/18/i-sense-something/</link>
		<comments>http://heisenbugs.wordpress.com/2008/12/18/i-sense-something/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 09:36:15 +0000</pubDate>
		<dc:creator>phloog</dc:creator>
				<category><![CDATA[Brainless chatter]]></category>
		<category><![CDATA[Beamer]]></category>
		<category><![CDATA[Markt]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Prophezeiung]]></category>
		<category><![CDATA[Verkäufer]]></category>

		<guid isPermaLink="false">http://heisenbugs.wordpress.com/?p=17</guid>
		<description><![CDATA[Es ist geschehen. Ich habe ein echtes Medium getroffen. Nein, ich meine damit jetzt nicht Rindfleisch in dem von mir bevorzugten Zustand, lecker, kurz vor dem Verspeisen &#8211; auch wenn sich die Frage stellt, wieso die Leute, um die es geht, so genannt werden &#8211; vielleicht weil sie in der Rübe auch etwas halbgar sind&#8230;? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=17&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Es ist geschehen.</p>
<p>Ich habe ein echtes Medium getroffen. Nein, ich meine damit jetzt nicht Rindfleisch in dem von mir bevorzugten Zustand, lecker, kurz vor dem Verspeisen &#8211; auch wenn sich die Frage stellt, wieso die Leute, um die es geht, so genannt werden &#8211; vielleicht weil sie in der Rübe auch etwas halbgar sind&#8230;? Egal.</p>
<p>Wo war ich?</p>
<p>Ach ja. Ich traf also gestern einen Mitmenschen mit übersinnlichen Fähigkeiten. Nicht nur das, er machte sogar eine Prophezeiung, mir gegenüber. Ich bin jetzt noch ganz sprachlos. Das ganze ereignete sich in einer Filiale einer bekannten Elektronikmarkt-Kette, die derzeit mit einem noch bekannteren Promi Werbung macht, der sich dazu in Frauenkleider stecken lässt. Tapfer.</p>
<p>Besagten Multimedia-Store (sic) betrat ich, um ein Videoprojektionsgerät, neuhochdeutsch &#8222;Beamer&#8220; (was Scotty wohl dazu sagen würde? Aber das ist ein anderes Thema) zu erwerben. Ich bin ja manchmal so naiv&#8230;</p>
<p>Nachdem ich den Media M&#8230; äh, die Elektronienhandlung hilf- und ergebnislos einige Minuten auf der Suche nach einem solchen durchwankte, beschloss ich, einen dieser seltenen, vor-Kunden-fliehenden Angestellten in rotschwarzer Kluft um gnädige Hilfe zu bitten. Ich fand sogar einen, und er war sogar nicht in ein endloses Gespräch mit einer Weichbirne vertieft, die sich nicht zwischen zwei Kaffeemaschinen entscheiden konnte. Spätestens da hätten bei mir Alarmglocken im Neocortex schrillen sollen, ein freier Handlanger im Med&#8230; äh, Geschäft-für-Männer-Spielzeug, das konnte ja nicht mit rechten Dingen zugehen. Nichtsdestotrotz, ich sprach den freundlichen Mittzwanziger mit ausgeprägter Akne (Haben die das alle? Kriegen die das da, oder ist das Einstellungsvoraussetzung?) an, legte mein Anliegen dar, und erhielt prompt die bereits erwähnte Weissagung, die von prophetischer Vorausschau einer ganzen Elektroniksparte, weltweit und von geradezu epischer Tragweite zeugte.</p>
<p>O-Ton:</p>
<p>&#8222;Beamer? Ham wa nich mehr. Wurd nich genug Nachgefragt. Die Leute wollen das auch gar nich mehr. Werden auch bald nich mehr hergestellt.&#8220;</p>
<p>Und unter Verbeugungen ob der unbegreiflichen Einsicht dieses Wesens aus höheren Sphären, die ich als normalsterblicher wohl nie erreichen werde, verließ ich den Med&#8230; äh, Tempel der Potenzialwanderungsutilisierenden Zeitvernichtungsapparaturen. Ohne Beamer, aber dafür mit orakliösem Wissen über die Zukunft der Unterhaltungsindustrie. Ich werde jedenfalls in nächster Zeit keine Aktien von Beamer-herstellenden Firmen kaufen&#8230;</p>
<p>-Tim</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/heisenbugs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/heisenbugs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/heisenbugs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/heisenbugs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/heisenbugs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/heisenbugs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/heisenbugs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/heisenbugs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/heisenbugs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/heisenbugs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/heisenbugs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/heisenbugs.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/heisenbugs.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/heisenbugs.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=17&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://heisenbugs.wordpress.com/2008/12/18/i-sense-something/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb6276e37f6427b909e8c833d6b33c8d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">phloog</media:title>
		</media:content>
	</item>
		<item>
		<title>Victim und Watchdog Thread II</title>
		<link>http://heisenbugs.wordpress.com/2008/12/12/victim-und-watchdog-thread-ii/</link>
		<comments>http://heisenbugs.wordpress.com/2008/12/12/victim-und-watchdog-thread-ii/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 13:26:17 +0000</pubDate>
		<dc:creator>phloog</dc:creator>
				<category><![CDATA[Hacks & stuff]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[Segfault]]></category>
		<category><![CDATA[Trace]]></category>

		<guid isPermaLink="false">http://heisenbugs.wordpress.com/2008/12/12/victim-und-watchdog-thread-ii/</guid>
		<description><![CDATA[Sieht so aus, als würde ich doch noch ein Bißchen mehr &#8222;Spaß&#8220; mit meiner Victim/Watchdog-Lösung haben. Auf bestimmte, komplexere Applikationen angewendet, funktioniert das Ganze nämlich überhaupt nicht mehr so reibungslos. Und Debuggen kann ich&#8217;s auch nicht vernünftig, weil der gdb bei Multithreaded-Anwendungen gerne ein wenig rumzickt. Seufz. Ich poste wieder, wenn ich weitergekommen bin<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=15&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sieht so aus, als würde ich doch noch ein Bißchen mehr &#8222;Spaß&#8220; mit meiner Victim/Watchdog-Lösung haben. Auf bestimmte, komplexere Applikationen angewendet, funktioniert das Ganze nämlich überhaupt nicht mehr so reibungslos. Und Debuggen kann ich&#8217;s auch nicht vernünftig, weil der gdb bei Multithreaded-Anwendungen gerne ein wenig rumzickt. Seufz. Ich poste wieder, wenn ich weitergekommen bin <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/heisenbugs.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/heisenbugs.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/heisenbugs.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/heisenbugs.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/heisenbugs.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/heisenbugs.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/heisenbugs.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/heisenbugs.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/heisenbugs.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/heisenbugs.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/heisenbugs.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/heisenbugs.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/heisenbugs.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/heisenbugs.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=15&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://heisenbugs.wordpress.com/2008/12/12/victim-und-watchdog-thread-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb6276e37f6427b909e8c833d6b33c8d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">phloog</media:title>
		</media:content>
	</item>
		<item>
		<title>Victim und Watchdog Thread</title>
		<link>http://heisenbugs.wordpress.com/2008/12/05/victim-und-watchdog-thread/</link>
		<comments>http://heisenbugs.wordpress.com/2008/12/05/victim-und-watchdog-thread/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 10:25:17 +0000</pubDate>
		<dc:creator>phloog</dc:creator>
				<category><![CDATA[Hacks & stuff]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Segfault]]></category>
		<category><![CDATA[Trace]]></category>
		<category><![CDATA[Trick]]></category>

		<guid isPermaLink="false">http://heisenbugs.wordpress.com/?p=12</guid>
		<description><![CDATA[Bei der Entwicklung der C/C++-trace Bibliothek, an der ich gerade arbeite, hatte ich ein kleines aber fieses Problem. Und zwar möchte ich nicht nur Funktionsaufrufe und -returns tracen, sondern auch die Argumente der Funktionen, lokale Variablen im caller- und callee-scope, usw. Und zwar inklusive Typ und Wert. Das funktioniert schon recht passabel. Ich kann Strukturen [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=12&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bei der Entwicklung der C/C++-trace Bibliothek, an der ich gerade arbeite, hatte ich ein kleines aber fieses Problem. Und zwar möchte ich nicht nur Funktionsaufrufe und -returns tracen, sondern auch die Argumente der Funktionen, lokale Variablen im caller- und callee-scope, usw. Und zwar inklusive Typ und Wert. Das funktioniert schon recht passabel. Ich kann Strukturen aufdröseln, Pointern folgen, die visibility und den const-Status der Symbole angeben, &#8230;</p>
<p>Stop.</p>
<p>Der geneigte Leser mag in diesem Augenblick bereits erfasst haben, was das fiese Problem an der Sache ist. Die Aussage &#8222;Ich kann Pointern folgen&#8220; sollte Alarmglocken jedes C-Programmierers schrillen lassen. Zur Erinnerung: Ich trace <strong>user-code</strong>! Was passiert, wenn ich versuche, uninitialisierten oder ungültigen Pointern zu folgen? &#8230;genau: Rumms.</p>
<p>Und das noch-schlimmere daran ist, dass dieses &#8222;Rumms&#8220; dann nicht nur meine trace-library killt, sondern sie auch noch die Applikation mitreißt, in die sie dynamisch gelinkt wurde &#8211; sprich, den User Algorithmus. Das ist&#8230; doof.</p>
<p>Also überlegte ich, wie ich das Problem lösen könnte. Es gibt ja leider kein &#8222;try / catch&#8220; für Segfaults. Nach einem Segfault ist das Programm in einem undefinierten Zustand (Auch, wenn der segfault nur lesend war. Hmpf!). Könnte man das Lesen des Wertes in einen eigenen Thread verlagern? Nein, wenn in einem Thread ein Segfault passiert, reißt es den Eltern-Thread mit sich. Bliebe ein eigener Prozess. Allerdings wäre es ein viel zu hoher Overhead, jedesmal einen Prozess zu starten, wenn man versuchen möchte, einem Pointer zu folgen. Aber man muss ihn ja nicht jedesmal <strong>dann</strong> starten&#8230;!</p>
<p>Meine derzeitige Lösung sieht wie folgt aus:</p>
<p>Zu Beginn, also wenn die Trace-Bibliothek geladen wird, wird in ein neuer Thread gestartet. Dieser forkt sofort einen Kindprozess, den &#8222;Victim&#8220; (Opfer). Heißt so, weil der arme Kerl höchstwahrscheinlich sehr bald sterben wird. Der Elternprozess (also der Thread der ctrace-library, im Folgenden &#8222;Watchdog&#8220;), der Victim sowie der ctrace-Hauptthread mappen dann ein Stück Shared Memory. Hier findet, von Mutexen geschützt, die Interprozesskommunikation statt. Der Victim fängt in einer Endlosschleife an, auf Arbeit zu warten, und der Watchdog fängt an, den Victim zu überwachen.</p>
<p>Komme ich in der libctrace an eine Stelle, wo ich einem (User-)Pointer folgen muss, übergebe ich die Adresse und Länge an den Victim. Dieser versucht, den Speicherinhalt in das Shared Memory zu kopieren. Klappt dies, setzt er ein Flag, der Hauptthread liest den Wert aus, und der Victim wartet auf den nächsten Job. Crasht der Victim allerdings beim Kopieren, startet der Watchdog einen neuen Victim-Prozess und meldet den Fehler an den Hauptthread.</p>
<p>Auf diese Weise tritt ein größerer Overhead nur genau dann auf, wenn ein Lesevorgang scheitert, da dann ein neuer Prozess geforked werden muss.</p>
<p>Vielleicht geht das Ganze noch eleganter, aber die Lösung funktioniert, und das auch sehr gut!</p>
<p>Bis zum nächsten Hack&#8230;</p>
<p>- Tim</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/heisenbugs.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/heisenbugs.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/heisenbugs.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/heisenbugs.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/heisenbugs.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/heisenbugs.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/heisenbugs.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/heisenbugs.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/heisenbugs.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/heisenbugs.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/heisenbugs.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/heisenbugs.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/heisenbugs.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/heisenbugs.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=12&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://heisenbugs.wordpress.com/2008/12/05/victim-und-watchdog-thread/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb6276e37f6427b909e8c833d6b33c8d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">phloog</media:title>
		</media:content>
	</item>
		<item>
		<title>Yet another&#8230;</title>
		<link>http://heisenbugs.wordpress.com/2008/12/02/yet-another/</link>
		<comments>http://heisenbugs.wordpress.com/2008/12/02/yet-another/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 10:40:19 +0000</pubDate>
		<dc:creator>phloog</dc:creator>
				<category><![CDATA[*this]]></category>
		<category><![CDATA[About]]></category>

		<guid isPermaLink="false">http://heisenbugs.wordpress.com/?p=5</guid>
		<description><![CDATA[&#8230;techie blog. Ich werde hier Lustiges oder auch nicht so Lustiges aus meinem (Arbeits&#124;Lehr&#124;Privat)-Alltag bloggen. Das nachher niemand behauptet, ich hätte euch nicht gewarnt! (Achso, ich werde euch im Übrigen schamlos duzen und kleinschreiben &#8211; wer damit nicht üm kann, möge sich melden und versuchen, mich mit Sachspenden umzustimmen.) Schwerpunkt des Blogs werden Berichte über [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=5&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230;techie blog. Ich werde hier Lustiges oder auch nicht so Lustiges aus meinem (Arbeits|Lehr|Privat)-Alltag bloggen. Das nachher niemand behauptet, ich hätte euch nicht gewarnt! (Achso, ich werde euch im Übrigen schamlos duzen und kleinschreiben &#8211; wer damit nicht üm kann, möge sich melden und versuchen, mich mit Sachspenden umzustimmen.)</p>
<p>Schwerpunkt des Blogs werden Berichte über dreckige Hacks und ähnliches Zeug sein, die ich beim Coden hervorbrachte, damit sie (zuförderst bei mir selbst) nicht in Vergessenheit geraten, und Rants über schlechten Code, APIs etc. (meist als Links zu bitschupser, s.u.)</p>
<p>Privates Zeug wird wohl eher selten hier auftauchen (mal sehen).</p>
<p>Ich hoffe dies wird sich nicht allzusehr mit <a href="http://bitschupser.wordpress.com" target="_blank">bitschupser.wordpress.com</a> überschneiden&#8230; man wird sehn. Ich wünsche jedenfalls viel Vergnügen beim Lesen (so die ersten Inhalte aufschlagen!)</p>
<p>- Tim</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/heisenbugs.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/heisenbugs.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/heisenbugs.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/heisenbugs.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/heisenbugs.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/heisenbugs.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/heisenbugs.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/heisenbugs.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/heisenbugs.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/heisenbugs.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/heisenbugs.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/heisenbugs.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/heisenbugs.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/heisenbugs.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=heisenbugs.wordpress.com&amp;blog=5715300&amp;post=5&amp;subd=heisenbugs&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://heisenbugs.wordpress.com/2008/12/02/yet-another/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb6276e37f6427b909e8c833d6b33c8d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">phloog</media:title>
		</media:content>
	</item>
	</channel>
</rss>
