<?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>Roundtrip to Shanghai via Tokyo &#187; tool</title>
	<atom:link href="http://kohei.us/tag/tool/feed/" rel="self" type="application/rss+xml" />
	<link>http://kohei.us</link>
	<description>Kohei Yoshida's Webspace</description>
	<lastBuildDate>Fri, 09 Jul 2010 12:20:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OOo module dependencies</title>
		<link>http://kohei.us/2010/07/07/ooo-module-dependencies/</link>
		<comments>http://kohei.us/2010/07/07/ooo-module-dependencies/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 23:56:00 +0000</pubDate>
		<dc:creator>Kohei Yoshida</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[openoffice.org]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://kohei.us/?p=808</guid>
		<description><![CDATA[Below is a graphical representation of OOo&#8217;s module dependencies as of DEV300 milestone 84 generated via graphviz.  Click on the image to get the whole picture.

You can find the python script I wrote to generate this nice picture here.
]]></description>
			<content:encoded><![CDATA[<p>Below is a graphical representation of OOo&#8217;s module dependencies as of DEV300 milestone 84 generated via <a href="http://www.graphviz.org/">graphviz</a>.  Click on the image to get the whole picture.</p>
<p><a href="http://kohei.us/wp-content/uploads/2010/07/ooo-modules.png"><img src="http://kohei.us/wp-content/uploads/2010/07/ooo-modules-thumb.png" alt="ooo-modules-thumb" title="ooo-modules-thumb" width="400" height="264" class="alignnone size-full wp-image-812" /></a></p>
<p>You can find the python script I wrote to generate this nice picture <a href="http://cgit.freedesktop.org/ooo-build/ooo-build/tree/bin/check-deps.py">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kohei.us/2010/07/07/ooo-module-dependencies/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Strace equivalent for Windows</title>
		<link>http://kohei.us/2010/06/25/strace-equivalent-for-windows/</link>
		<comments>http://kohei.us/2010/06/25/strace-equivalent-for-windows/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 20:45:36 +0000</pubDate>
		<dc:creator>Kohei Yoshida</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://kohei.us/?p=801</guid>
		<description><![CDATA[While searching for a debug tool equivalent of strace that runs on Windows, I&#8217;ve come across Process Monitor.  This appears to work well for me.  For anyone in search of strace equivalent on Windows, give this one a try.
I&#8217;ve also tried StraceNT, but this one was not very reliable as it tends to [...]]]></description>
			<content:encoded><![CDATA[<p>While searching for a debug tool equivalent of <a href="http://en.wikipedia.org/wiki/Strace">strace</a> that runs on Windows, I&#8217;ve come across <a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx">Process Monitor</a>.  This appears to work well for me.  For anyone in search of strace equivalent on Windows, give this one a try.</p>
<p>I&#8217;ve also tried <a href="http://www.intellectualheaven.com/default.asp?BH=projects&#038;H=strace.htm">StraceNT</a>, but this one was not very reliable as it tends to crash the traced process almost every time.</p>
<p>An equally useful tool for debugging on Windows is <a href="http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx">DebugView</a>, which captures output from the <a href="http://msdn.microsoft.com/en-us/library/aa363362%28VS.85%29.aspx">OutputDebugString</a> calls.</p>
]]></content:encoded>
			<wfw:commentRss>http://kohei.us/2010/06/25/strace-equivalent-for-windows/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>mso-dumper now packaged in OBS</title>
		<link>http://kohei.us/2010/03/20/mso-dumper-now-packaged-in-obs/</link>
		<comments>http://kohei.us/2010/03/20/mso-dumper-now-packaged-in-obs/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 03:06:23 +0000</pubDate>
		<dc:creator>Kohei Yoshida</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[calc]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[mso-dumper]]></category>
		<category><![CDATA[power point]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://kohei.us/?p=699</guid>
		<description><![CDATA[I&#8217;m happy to announce that the mso-dumper tool is now packaged in the openSUSE build service under my home repository.  This tool is written in Python, and allows you to dump the contents of MS Office documents stored in the BIFF-structured binary file format in a more human readable fashion.  It is an [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce that the mso-dumper tool is now <a href="http://download.opensuse.org/repositories/home:/kohei_yoshida/">packaged in the openSUSE build service under my home repository</a>.  This tool is written in Python, and allows you to dump the contents of MS Office documents stored in the BIFF-structured binary file format in a more human readable fashion.  It is an indispensable tool when dealing with importing from and/or exporting to the Office documents.  Right now, only Excel and Power Point formats are supported.</p>
<p>This package provides two new commands <code>xls-dump</code> and <code>ppt-dump</code>.  If you wish to dump the content of an Excel document, all you have to do is</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">xls-dump .<span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>mydoc.xls</pre></div></div>

<p>and it dumps its content to standard output.  What the output looks like depends on what&#8217;s stored with the document, but it will look something like this:</p>
<pre>
...
0085h: =============================================================
0085h: BOUNDSHEET - Sheet Information (0085h)
0085h:   size = 14
0085h: -------------------------------------------------------------
0085h: B4 09 00 00 00 00 06 00 53 68 65 65 74 31
0085h: -------------------------------------------------------------
0085h: BOF position in this stream: 2484
0085h: sheet name: Sheet1
0085h: hidden state: visible
0085h: sheet type: worksheet or dialog sheet

008Ch: =============================================================
008Ch: COUNTRY - Default Country and WIN.INI Country (008Ch)
008Ch:   size = 4
008Ch: -------------------------------------------------------------
008Ch: 01 00 01 00 

00EBh: =============================================================
00EBh: MSODRAWINGGROUP - Microsoft Office Drawing Group (00EBh)
00EBh:   size = 90
00EBh: -------------------------------------------------------------
00EBh: 0F 00 00 F0 52 00 00 00 00 00 06 F0 18 00 00 00
00EBh: 02 04 00 00 02 00 00 00 02 00 00 00 01 00 00 00
00EBh: 01 00 00 00 02 00 00 00 33 00 0B F0 12 00 00 00
00EBh: BF 00 08 00 08 00 81 01 09 00 00 08 C0 01 40 00
00EBh: 00 08 40 00 1E F1 10 00 00 00 0D 00 00 08 0C 00
00EBh: 00 08 17 00 00 08 F7 00 00 10 

00FCh: =============================================================
00FCh: SST - Shared String Table (00FCh)
00FCh:   size = 8
00FCh: -------------------------------------------------------------
00FCh: 00 00 00 00 00 00 00 00
00FCh: -------------------------------------------------------------
00FCh: total number of references: 0
00FCh: total number of unique strings: 0
...
</pre>
<p>I have originally written this tool to deal with the Excel import and export part of Calc&#8217;s development, and continue to develop it further.  <a href="http://blog.thebehrens.net/">Thorsten Behrens</a> has later joined forces and <a href="http://blog.thebehrens.net/2009/01/08/python-binary-ppt-fun/">added support for the Power Point format</a>.  Right now, I&#8217;m working on adding an XML output format option to make it easier to compare outputs, which is important for regression testing.</p>
]]></content:encoded>
			<wfw:commentRss>http://kohei.us/2010/03/20/mso-dumper-now-packaged-in-obs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting break point where an exception is thrown</title>
		<link>http://kohei.us/2009/12/22/setting-break-point-where-an-exception-is-thrown/</link>
		<comments>http://kohei.us/2009/12/22/setting-break-point-where-an-exception-is-thrown/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 21:42:11 +0000</pubDate>
		<dc:creator>Kohei Yoshida</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://kohei.us/?p=599</guid>
		<description><![CDATA[Caolan told me today that when debugging with gdb, you can actually set a break point right before an exception is thrown.
You can do

gdb ./soffice.bin
&#40;gdb&#41; catch throw
&#40;gdb&#41; run

and gdb breaks at every location where an exception is raised.  Or, you can set a normal break point, run catch throw and cont, and gdb will [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.linux.ie/caolan">Caolan</a> told me today that when debugging with gdb, you can actually set a break point right before an exception is thrown.</p>
<p>You can do</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">gdb</span> .<span style="color: #000000; font-weight: bold;">/</span>soffice.bin
<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">gdb</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> catch throw
<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">gdb</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> run</pre></div></div>

<p>and gdb breaks at every location where an exception is raised.  Or, you can set a normal break point, run <code>catch throw</code> and <code>cont</code>, and gdb will break at the next exception throw event.  This technique helps when an exception gets caught somewhere at higher level in the call stack and you are trying to find out where exactly it is thrown.  Such task, without this technique, would be very time-consuming, tedious, boring, and at times frustrating especially when you&#8217;ve spent hours and still don&#8217;t have the location of the thrown exception.</p>
<p>Similarly, you can also break where an exception is caught, with <code>catch catch</code> command, or you can catch <a href="http://sources.redhat.com/gdb/current/onlinedocs/gdb.html#Set-Catchpoints">a whole set of other events with this construct</a>.</p>
<p>The only drawback with this catch event construct is that, it breaks at every single exception raised or caught, which, inside OOo&#8217;s codebase can be quite substantial in some places.  Nonetheless, this is a very useful technique to add to your debugging arsenal.</p>
]]></content:encoded>
			<wfw:commentRss>http://kohei.us/2009/12/22/setting-break-point-where-an-exception-is-thrown/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>callcatcher</title>
		<link>http://kohei.us/2008/05/15/callcatcher/</link>
		<comments>http://kohei.us/2008/05/15/callcatcher/#comments</comments>
		<pubDate>Thu, 15 May 2008 04:22:18 +0000</pubDate>
		<dc:creator>Kohei Yoshida</dc:creator>
				<category><![CDATA[]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://kohei.us/2008/05/15/callcatcher/</guid>
		<description><![CDATA[I just had the chance to play with Caolan&#8217;s cool callcatcher program to search and destroy (or comment out rather) lots of unused methods in Calc&#8217;s code.  It was surprisingly simple to install and use it.  All I had to do after downloading the source package was to

tar xvf callcatcher-1.0.8.tar.gz
cd callcatcher-1.0.8
sudo ./setup.py install

then [...]]]></description>
			<content:encoded><![CDATA[<p>I just had the chance to play with <a href="http://www.skynet.ie/~caolan/">Caolan</a>&#8217;s cool <a href="http://www.skynet.ie/~caolan/Packages/callcatcher.html">callcatcher</a> program to search and destroy (or comment out rather) lots of unused methods in Calc&#8217;s code.  It was surprisingly simple to install and use it.  All I had to do after downloading the source package was to</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> xvf callcatcher-1.0.8.tar.gz
<span style="color: #7a0874; font-weight: bold;">cd</span> callcatcher-1.0.8
<span style="color: #c20cb9; font-weight: bold;">sudo</span> .<span style="color: #000000; font-weight: bold;">/</span>setup.py <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>then replace all <code>gcc</code> and <code>g++</code> calls with <code>callcatcher gcc</code> and <code>callcatcher g++</code>, respectively, to catch all defined functions and their references (or lack thereof).  That&#8217;s all.  Once done, run <code>callanalyse [executable or shared library]</code> to generate the summary output of all unused methods.  It was pretty accurate, and as he claims there was no false positives as far as I could tell.</p>
]]></content:encoded>
			<wfw:commentRss>http://kohei.us/2008/05/15/callcatcher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
