<?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/"
	>

<channel>
	<title>technochakra.com &#187; windbg</title>
	<atom:link href="http://www.technochakra.com/tag/windbg/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.technochakra.com</link>
	<description>Wheels Of Technology</description>
	<lastBuildDate>Fri, 06 Jan 2012 10:13:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cross-platform Debugging Cheat Sheet</title>
		<link>http://www.technochakra.com/cross-platform-debugging-cheat-sheet/</link>
		<comments>http://www.technochakra.com/cross-platform-debugging-cheat-sheet/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 06:06:36 +0000</pubDate>
		<dc:creator>tc</dc:creator>
				<category><![CDATA[debugging]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[visualstudio]]></category>
		<category><![CDATA[windbg]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.technochakra.com/?p=231</guid>
		<description><![CDATA[<a href="http://www.technochakra.com/cross-platform-debugging-cheat-sheet/" title="Cross-platform Debugging Cheat Sheet"></a>If you work on multiple platforms and use different debuggers, you are expected to know the debugger&#8217;s user interfaces well enough.  At times this gets confusing especially if you have one primary  platform and you work on other platforms rather &#8230;<p class="read-more"><a href="http://www.technochakra.com/cross-platform-debugging-cheat-sheet/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.technochakra.com/cross-platform-debugging-cheat-sheet/" title="Cross-platform Debugging Cheat Sheet"></a><p>If you work on multiple platforms and use different debuggers, you are expected to know the debugger&#8217;s user interfaces well enough.  At times this gets confusing especially if you have one primary  platform and you work on other platforms rather infrequently.  </p>
<p>I have compiled a list of my favorite features in a debugger and how to invoke them on different debuggers (Visual Studio, XCode, gdb and Windbg). </p>
<p>This is not a substitute for the debugger&#8217;s documentation but helpful for quickly switching to an unfamiliar debugging environment.  Click the image below for viewing the table or download the PDF version as a ready reference.</p>
<p><a rel="attachment wp-att-249" href="http://www.technochakra.com/cross-platform-debugging-cheat-sheet/debuggersv01/"><img class="alignnone size-medium wp-image-249" title="Debugger Cheatsheet" src="http://www.technochakra.com/wp-content/uploads/debuggersV01-300x212.jpg" alt="Debugger Cheatsheet" width="300" height="212" /></a></p>
<p><a href="http://www.technochakra.com/wp-content/uploads/debuggersV01.pdf" target="_blank">Debugger Cheat Sheet (Download PDF)</a></p>
<p>Please note :</p>
<ul>
<li>The commands (especially for gdb) are not necessarily complete and the debugger&#8217;s help should be consulted for detailed usage.</li>
<li>The list is not comprehensive and I have only put in my favorite commands that I use while debugging.  </li>
<li>A square bracket [ ] denotes a keyboard shortcut.</li>
</ul>
<p style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-2898169159040774";
/* 468x60 */
google_ad_slot = "0060129261";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>]]></content:encoded>
			<wfw:commentRss>http://www.technochakra.com/cross-platform-debugging-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Temporary Breakpoint &#8211; Now You See It, Now You Don&#8217;t</title>
		<link>http://www.technochakra.com/temporary-breakpoint-now-you-see-it-now-you-dont/</link>
		<comments>http://www.technochakra.com/temporary-breakpoint-now-you-see-it-now-you-dont/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 18:00:02 +0000</pubDate>
		<dc:creator>tc</dc:creator>
				<category><![CDATA[debugging]]></category>
		<category><![CDATA[breakpoints]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[windbg]]></category>

		<guid isPermaLink="false">http://www.technochakra.com/?p=126</guid>
		<description><![CDATA[<a href="http://www.technochakra.com/temporary-breakpoint-now-you-see-it-now-you-dont/" title="Temporary Breakpoint - Now You See It, Now You Don&#039;t"></a>Have you faced the problem of breakpoint clutter where breakpoints keep piling up only to hinder the debugging session?  It is then that one realizes that there are some breakpoints that can be deleted and others disabled.  A useful feature in a debugger is a &#8230;<p class="read-more"><a href="http://www.technochakra.com/temporary-breakpoint-now-you-see-it-now-you-dont/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.technochakra.com/temporary-breakpoint-now-you-see-it-now-you-dont/" title="Temporary Breakpoint - Now You See It, Now You Don&#039;t"></a><p>Have you faced the problem of breakpoint clutter where breakpoints keep piling up only to hinder the debugging session?  It is then that one realizes that there are some breakpoints that can be deleted and others disabled. </p>
<p>A useful feature in a debugger is a temporary breakpoint that automagically gets deleted when hit thereby reducing the clutter of unnecessary breakpoints.  These breakpoints are useful when you wish to stop at a code location only once and do not require the execution to stop at that location ever again. </p>
<p>For example, say you are trying to determine whether a particular test scenario invokes a specific line of code or not, in that case a temporary breakpoint can be used as the breakpoint is not useful once it has been hit alteast once.</p>
<p>Below are steps on how to set temporary breakpoints in various debuggers.</p>
<h2>gdb</h2>
<p>Use the<em> <strong>tb</strong></em> command to set a temporary breakpoint in gdb.  It is similar to the <em><strong>break </strong></em>command but the breakpoint will automatically be deleted when hit.</p>
<blockquote><p><strong><span style="text-decoration: underline;">(gdb)</span></strong>help tb<br />
Set a temporary breakpoint.<br />
Like &#8220;break&#8221; except the breakpoint is only temporary,<br />
so it will be deleted when hit.  Equivalent to &#8220;break&#8221; followed<br />
by using &#8220;enable delete&#8221; on the breakpoint number.<br />
    </p></blockquote>
<h2>Windbg</h2>
<p>In Windbg, breakpoints set in the Command window using the <strong><em>bl /1</em></strong> command can be used to create temporary breakpoints.  The <strong><em>/1 </em></strong>tells Windbg that the breakpoint should be deleted when hit.</p>
<p>In Windbg temporary breakpoints are also known as &#8220;one shot breakpoints&#8221;.</p>
<h2>Visual Studio</h2>
<p>I found it a bit painful to create temporary breakpoints in Visual Studio.  The only way I could create one was by setting a breakpoint and then setting the hit count for the breakpoint to be equal to 1.   The  article <a href="http://www.technochakra.com/debugging-using-breakpoint-hit-count-for-fun-and-profit#vs_hitcount">here</a> explains how to set a hit count in Visual Studio.</p>
<p>The amount of work involved to do this sometimes doesn&#8217;t make temporary breakpoints worthwhile to set.  Moreover the breakpoint lingers on and doesn&#8217;t actually get deleted when hit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.technochakra.com/temporary-breakpoint-now-you-see-it-now-you-dont/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

