<?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>debug &#8211; Alessandro Crugnola &#8211; sephiroth.it</title>
	<atom:link href="https://blog.sephiroth.it/tag/debug/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.sephiroth.it</link>
	<description>programmer by pure chance</description>
	<lastBuildDate>Sat, 22 Oct 2022 07:28:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.sephiroth.it/wp-content/uploads/2019/03/cropped-sepy-big-32x32.png</url>
	<title>debug &#8211; Alessandro Crugnola &#8211; sephiroth.it</title>
	<link>https://blog.sephiroth.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How-to debug native code with Android</title>
		<link>https://blog.sephiroth.it/2010/12/14/how-to-debug-native-code-with-android/</link>
					<comments>https://blog.sephiroth.it/2010/12/14/how-to-debug-native-code-with-android/#comments</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Tue, 14 Dec 2010 14:01:39 +0000</pubDate>
				<category><![CDATA[android]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[ndk]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[sequoyah]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=1416</guid>

					<description><![CDATA[This is a step by step guide for executing and debugging native code on Android with Eclipse. 1. Prerequisites The SDK version used for this guide is Froyo with the NDK r4b ( crystax release ). Also Eclipse CDT plugin it&#8217;s very useful for our purposes, so install it. Last plugin to install it&#8217;s the &#8230; <a href="https://blog.sephiroth.it/2010/12/14/how-to-debug-native-code-with-android/" class="more-link">Continue reading <span class="screen-reader-text">How-to debug native code with Android</span></a>]]></description>
										<content:encoded><![CDATA[<p>This is a step by step guide for executing and debugging native code on Android with Eclipse.</p>
<h3>1. Prerequisites</h3>
<p>The <a href="http://developer.android.com/sdk/index.html">SDK</a> version used for this guide is Froyo with the NDK r4b ( <a href="3http://www.crystax.net/android/ndk-r4.php">crystax release</a> ).<br />
Also <a href="http://www.eclipse.org/cdt/downloads.php">Eclipse CDT</a> plugin it&#8217;s very useful for our purposes, so install it.<br />
Last plugin to install it&#8217;s the <a href="http://www.eclipse.org/sequoyah/downloads/index.php">Sequoyah</a> plugin for Eclipse.</p>
<h3>2. Project setup</h3>
<p><a href="https://blog.sephiroth.it/wp-content/uploads/2010/12/Screen-shot-2010-12-13-at-11.24.20.png"><img decoding="async" class="alignleft size-thumbnail wp-image-1422" title="android project setup" src="https://blog.sephiroth.it/wp-content/uploads/2010/12/Screen-shot-2010-12-13-at-11.24.20-150x150.png" alt="" width="150" height="150"/></a>At this point let&#8217;s create a new Android project, name it &#8220;Example&#8221; and use the &#8220;com.darkwavegames.com&#8221; package name, add also an Activity name of your choice.<br />
Select Android 2.2 as base SDK version and complete the project wizard.</p>
<p>Now you need to add the native support for the newly created project. Just right click on the project root element in the package explorer and select &#8220;add native support&#8221;.<a href="https://blog.sephiroth.it/wp-content/uploads/2010/12/Screen-shot-2010-12-13-at-11.29.15.png"><img decoding="async" class="alignright size-thumbnail wp-image-1424" title="add native support" src="https://blog.sephiroth.it/wp-content/uploads/2010/12/Screen-shot-2010-12-13-at-11.29.15-150x150.png" alt="" width="150" height="150"/></a></p>
<p>In the next dialog write the path of your NDK folder and give also name for your library.<br />
After this operation a new folder &#8220;jni&#8221; will be created with a .cpp file, header filer and an Android makefile, Android.mk, which can be edited to modify all the includes, linker and compiler options. In the Android.mk file you also need to specify all the source file you want to use within the LOCAL_SRC_FILE directive.</p>
<h3>3. Debug</h3>
<p>In order to enable debug of native code in Android you have to face different problems, based also on the device and the firmware version, and if the native code is multi thread or single thread.<br />
First of all you need to mofify the <strong>AndroidManifest.xml</strong> file adding the attribute &#8220;debuggable&#8221; to true ( remember also to enable the &#8220;Debug USB&#8221; option under the Application device menu ).<br />
At this point you can debug all the java code within your eclipse debugger, for for the native C debug you need more steps.</p>
<p><span id="more-1416"></span></p>
<h3>3.1 Rooting</h3>
<p>In case one of the below prerequisites are not available you need to root the device. For most of the device you just need to download from the market the application <a href="http://www.google.com/search?ie=UTF-8&amp;oe=UTF-8&amp;sourceid=navclient&amp;gfns=1&amp;q=z4root">z4root</a>.</p>
<h3>3.2 PackageManagerService</h3>
<p>The first thing needed in order to let the gdb-debug script works is the presence of the &#8220;<em>com.android.server.PackageManagerServices</em>&#8221; service on the device. This serve generates, for each installed application, a new entry inside the &#8220;<em>/data/system/packages.list</em>&#8221; file.<br />
This file is used by the the &#8220;<strong>run-as</strong>&#8221; command to know the process privileges and its folder content.<br />
If on your device this service is unavailable you need to create one.</p>
<p><em>( Just skip this step if you have the PackageManagerService on your device )</em><br />
The file format is very simple. every line has 4 columns: package name, user id, debug flasg (&#8220;0&#8221; or &#8220;1&#8221;), applicatio folder.<br />
You can do this: from Eclipse install the application just using the &#8220;Run as&#8221; command ( or via shell writing: adb install package.apk ). Now in a new terminal window write:</p>
<p>[cc]host:~ $ adb shell ps | grep com.darkwavegames.esempio[/cc]</p>
<p>First output entry will be the user associated with that process ( let&#8217;s say app_42 ). In order to obtain the user_id simply write:</p>
<p>[cc]host:~ $ adb shell su app_42[/cc]</p>
<p>Just copy the output ( which is the user_id, for instance 10042 ) and exit from shell ( using &#8220;exit&#8221; command).<br />
Now we have to get the app folder. Unfortunately the /data/data folder is protected, so you need to log into the device and obtain root access.</p>
<p>[cc]host:~ $ adb shell su<br />
# cd /data/data<br />
# ls -l -h[/cc]</p>
<p>Look for the folder&nbsp; associated to our user ( in our example is: com.darkwavegames.esempio ).<br />
Now we have all the informations for creating an entry for the packages.list:</p>
<p>[cc]host:~ $ adb shell su<br />
# cd /data/system<br />
# echo com.darkwavegames.esempio 10042 1 /data/data/com.darkwavegames.esempio &gt; packages.list[/cc]</p>
<p>Now the run-as command will find all the required informations.<strong><br />
<em>Note</em></strong><em> that in case you uninstall and reinstall the application you need to to repeat this steps because the system could have assigned a new user_id to that application.<br />
</em>Now you should be able to run the ndk-gdb script ( executing it inside the project folder ) and set breakpoints on the native code.</p>
<h3>3.3 NDK-GDB</h3>
<p>At this point starting ndk-gdb from the project folder should be enough. If you&#8217;ve verified all the above prerequisites and your code is simgle thread this should be enough.<br />
Instead, if your native code is multi thread, the gdbserver which comes with the r4b can&#8217;t debug your code ( probably it has been compiled without the multi thread <a href="http://code.google.com/p/android/issues/detail?id=9713">support</a> ).</p>
<p>In this case you need to obtain from the android repository <strong>git://android.git.kernel.org/platform/prebuilt.git</strong> the &#8220;prebuilt&#8221; folder of the SDK. Now that you have download it into your <strong>$PREBUILT</strong> folder you need to download the gdbserver with multi thread support from <a href="http://android.git.kernel.org/?p=platform/prebuilt. git;a=blob_plain;f=android-arm/gdbserver/gdbserver;hb= d4f4703a1b23e6a73becec455c3d561ae3829a65">this link</a>.<br />
Copy the gdbserver just downoaded into folder $ANDROID NDK PATH/build/prebuilt/$HOST ARCH/arm-eabi-4.4.0/bin where $HOST_ARCH is your developement architecture ( darwin-x86 if you&#8217;re with mac osx ).<br />
Copy $PREBUILT/$HOST ARCH/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gdb into $ANDROID NDK PATH/build/prebuilt/$HOST ARCH/arm-eabi-4.4.0/bin and use it as debugger.<br />
We&#8217;re close to the goal!</p>
<p>Now modify the &#8220;install-binary.mk&#8221; script inside $ANDROID_NDK_PATH and change the line</p>
<p>[cc]$(call cmd-strip, $(PRIVATE_DST))[/cc]</p>
<p>into</p>
<p>[cc]ifneq ($(APP_OPTIM),debug)<br />
$(call cmd-strip, $(PRIVATE_DST))<br />
endif[/cc]</p>
<p>In this way, if in out Android.mk file there&#8217;s a directive APP_OPTIM with the value &#8220;debug&#8221;, the symbol strip will not be executed.</p>
<p>Now in order to have the debug running we need to add a breakpoint in the <strong>Java</strong> code just before the <strong>System.loadLibrary()</strong> method and start a new debug session from Eclipse.<br />
As the code reach the breakpoint, open the terminal, enter the project folder and write these commands:</p>
<p>[cc]host:~ $ adb shell ps | grep com.darkwavegames.esempio app_42 4512 2377 648 332 c0318ffc afd0eafc S com.d&#8230;<br />
host:~ $ adb shell<br />
$ su<br />
# cd /data/data/com.darkwavegames.esempio/lib<br />
# ./gdbserver :5039 &#8211;attach 4512[/cc]</p>
<p>Without close terminal, open a new termina window and execute:</p>
<p>[cc]host:~ $ cd workspace/esempio<br />
host:esempio $ adb forward tcp:5039 tcp:5039<br />
host:esempio $ adb pull /system/bin/app_process \<br />
obj/local/armeabi/app_process<br />
host:esempio $ adb pull /system/lib/libc.so \<br />
obj/local/armeabi/libc.so<br />
host:esempio $ export NDK_BIN=$ANDROID_NDK_ROOT/build/prebuilt<br />
host:esempio $ $NDK_BIN/darwin-x86/arm-eabi-4.4.0/bin/arm-eabi-gdb \ -x obj/local/armeabi/gdb.setup -e obj/local/armeabi/app_process[/cc]</p>
<p>gdb.setup is generated by the ndk-gdb, but is created into the libs/armeabi folder. It&#8217;s important to copy it into the &#8220;obj&#8221; folder and add the line &#8220;target remote :5039&#8221;.<br />
Now from the gdb prompt it&#8217;s possible to add breakpoints and execute all the debug <a href="http://www.eecs.umich.edu/~sugih/pointers/summary.html" target="_blank" rel="noopener">instructions</a> such as step into, over, continue&#8230;</p>
<p><strong>All these steps</strong> are included in the &#8220;<a href="https://blog.sephiroth.it/wp-content/uploads/2010/12/remotegdb.sh.zip">remotegdb.sh</a>&#8221; file, so you don&#8217;t need to write all these commands every time! Just execute this script in the project folder ( the same folder where the AndroidManifest.xml is located ).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2010/12/14/how-to-debug-native-code-with-android/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>FlashTracer for Firebug</title>
		<link>https://blog.sephiroth.it/2010/03/29/flashtracer-for-firebug/</link>
					<comments>https://blog.sephiroth.it/2010/03/29/flashtracer-for-firebug/#comments</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Tue, 30 Mar 2010 04:17:15 +0000</pubDate>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[fbtracer]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[flash tracer]]></category>
		<category><![CDATA[leopard]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[windows]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=295</guid>

					<description><![CDATA[Recently I decided to write my old flash tracer firefox extension from scratch because I found it not really useful (at least for me) and too &#8220;expensive&#8221;, moreover when using firebug at the same time. So I made a quick test to see how much was hard to create a new panel inside firebug to &#8230; <a href="https://blog.sephiroth.it/2010/03/29/flashtracer-for-firebug/" class="more-link">Continue reading <span class="screen-reader-text">FlashTracer for Firebug</span></a>]]></description>
										<content:encoded><![CDATA[<div>
<figure id="attachment_377" aria-describedby="caption-attachment-377" style="width: 150px" class="wp-caption alignright"><a href="http://ve.m5yn67dl.vesrv.com/wp-content/uploads/2010/03/screenshot_1.png"><img decoding="async" class="size-thumbnail wp-image-377 " title="fbtracer" src="http://ve.m5yn67dl.vesrv.com/wp-content/uploads/2010/03/screenshot_1-150x150.png" alt="" width="150" height="150" srcset="https://blog.sephiroth.it/wp-content/uploads/2010/03/screenshot_1-150x150.png 150w, https://blog.sephiroth.it/wp-content/uploads/2010/03/screenshot_1-64x64.png 64w" sizes="(max-width: 150px) 100vw, 150px" /></a><figcaption id="caption-attachment-377" class="wp-caption-text">FBTracer in action</figcaption></figure>
<p>Recently I decided to write my old <a title="My first Firefox extension! (FlashTracer)" href="http://ve.m5yn67dl.vesrv.com/2006/10/01/my-first-firefox-extension-flashtracer/">flash tracer</a> firefox extension from scratch because I found it not really useful (at least for me) and too &#8220;expensive&#8221;, moreover when using <a href="http://www.getfirebug.com">firebug</a> at the same time.</div>
<div>So I made a quick test to see how much was hard to create a new panel inside firebug to display flash tracer.</div>
<div>This is the result of what I did right now. It does not have all the features of the old extension, it just display the flash traces. Anyway it is actually in early stage development, updates will come during next days.</div>
<div>Here the instructions and the download link (remrmber to install the flashplayer debugger and firebug first!):</div>
<div><a title="Flash Tracer for Firebug" href="http://ve.m5yn67dl.vesrv.com/firefox-extensions/flash-tracer-for-firebug/">http://www.sephiroth.it/firefox-extensions/flash-tracer-for-firebug/</a></div>
<div></div>
<div><strong>P.S.</strong> It has been tested on osx <strong>snow leopard</strong> and <strong>windows 7</strong> right now.</div>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><img decoding="async" class="zemanta-pixie-img" style="border: none; float: right;" src="http://img.zemanta.com/pixy.gif?x-id=d3b54bad-90e5-4a21-93c0-2e3654361ed3" alt="" /><span class="zem-script more-related more-info pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2010/03/29/flashtracer-for-firebug/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>mm.cfg revealed!</title>
		<link>https://blog.sephiroth.it/2010/02/11/mm-cfg-revealed/</link>
					<comments>https://blog.sephiroth.it/2010/02/11/mm-cfg-revealed/#comments</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Fri, 12 Feb 2010 06:41:39 +0000</pubDate>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[flash]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=292</guid>

					<description><![CDATA[I&#8217;ve just discovered an unbelievable post by&#160;Jean-Philippe Auclair&#160;with ALL the undocumented options of the mm.cfg file! Really interesting in particular AS3Trace and AS3Verbose (and what is AS3Turbo anyway?). Also TraceOutputBuffered could be useful for all swf with uncommented trace calls &#240;&#159;&#153;&#130; Read all the features here: http://jpauclair.net/2010/02/10/mmcfg-treasure/ By the way, this is the list of &#8230; <a href="https://blog.sephiroth.it/2010/02/11/mm-cfg-revealed/" class="more-link">Continue reading <span class="screen-reader-text">mm.cfg revealed!</span></a>]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve just discovered an unbelievable post by Jean-Philippe Auclair with ALL the undocumented options of the <a href="http://help.adobe.com/en_US/Flex/4.0/html/WS2db454920e96a9e51e63e3d11c0bf69084-7fc9.html">mm.cfg</a> file!</p>
<div><span style="font-family: arial, sans-serif; color: #000000;"><span style="white-space: pre-wrap;">Really interesting in particular <strong>AS3Trace</strong> and <strong>AS3Verbose</strong> (and what is AS3Turbo anyway?). Also TraceOutputBuffered could be useful for all swf with uncommented trace calls 🙂</span></span></div>
<div><span style="font-family: arial, sans-serif; color: #000000;"><span style="white-space: pre-wrap;"><br />
</span></span></div>
<div><span style="font-family: arial, sans-serif; color: #000000;"><span style="white-space: pre-wrap;">Read all the features here: <a href="http://jpauclair.net/2010/02/10/mmcfg-treasure/">http://jpauclair.net/2010/02/10/mmcfg-treasure/</a></span></span></div>
<div>By the way, this is the list of features he discovered (follow the link above for detailed information on each command):</div>
<div>
<ul>
<li>AllowUserLocalTrust</li>
<li>AS3AllocationTracking</li>
<li>AS3AutoStartSampling</li>
<li>AS3CSE</li>
<li>AS3DCE</li>
<li>AS3DynamicProfile</li>
<li>AS3MIR</li>
<li>AS3Sampling</li>
<li>AS3SSE</li>
<li>AS3StaticProfile</li>
<li>AS3Trace</li>
<li>AS3Turbo</li>
<li>AS3Verbose</li>
<li>AssetCacheSize=X</li>
<li>AutoUpdateDisable</li>
<li>AutoUpdateInterval</li>
<li>AutoUpdateVersionUrl</li>
<li>AVHardwareDisable</li>
<li>CodeSignLogFile</li>
<li>CodeSignRootCert</li>
<li>Convert8kAnd16kAudio</li>
<li>CrashLogEnable</li>
<li>DisableAVM1Loading</li>
<li>DisableDeviceFontEnumeration</li>
<li>DisableIncrementalGC</li>
<li>DisableMulticoreRenderer</li>
<li>DisableNetworkAndFilesystemInHostApp</li>
<li>DisableProductDownload</li>
<li>DisableSockets</li>
<li>DisplayGPUBlend</li>
<li>EnableIncrementalValidation</li>
<li>EnableLeakFile</li>
<li>EnableSocketsTo</li>
<li>EnableSocketsTo</li>
<li>EnableSocketsTo</li>
<li>EnforceLocalSecurityInActiveXHostApp</li>
<li>ErrorReportingEnable</li>
<li>FileDownloadDisable</li>
<li>FileUploadDisable</li>
<li>ForceGPUBlend</li>
<li>FrameProfilingEnable</li>
<li>FullScreenDisable</li>
<li>GCStats</li>
<li>GPULogOutputFileName</li>
<li>HeapProfilingAS3Enable</li>
<li>LegacyDomainMatching</li>
<li>LocalFileLegacyAction</li>
<li>LocalFileReadDisable</li>
<li>LocalStorageLimit</li>
<li>LogGPU</li>
<li>MaxWarnings</li>
<li>OverrideGPUValidation</li>
<li>OverrideUserInvokedActions</li>
<li>PolicyFileLog</li>
<li>PolicyFileLogAppend</li>
<li>PreloadSwf</li>
<li>PreloadSwf</li>
<li>ProductDisabled</li>
<li>ProductDownloadBaseUrl</li>
<li>ProfileFunctionEnable</li>
<li>ProfilingOutputDirectory</li>
<li>ProfilingOutputFileEnable</li>
<li>RendererProfilingEnable</li>
<li>RTMFPP2PDisable</li>
<li>RTMFPTURNProxy</li>
<li>ScriptStuckTimeout</li>
<li>SecurityDialogReportingEnable</li>
<li>SuppressDebuggerExceptionDialogs</li>
<li>ThirdPartyStorage</li>
<li>TraceOutputBuffered</li>
<li>TraceOutputFileEnable</li>
<li>TraceOutputFileName</li>
<li>UseBrokerProcess</li>
<li>WindowlessDisable</li>
</ul>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2010/02/11/mm-cfg-revealed/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Add system excepthook in actionscript!</title>
		<link>https://blog.sephiroth.it/2009/09/18/add-system-excepthook-in-actionscript/</link>
					<comments>https://blog.sephiroth.it/2009/09/18/add-system-excepthook-in-actionscript/#comments</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Fri, 18 Sep 2009 17:08:48 +0000</pubDate>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[exception]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[SEPY]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=280</guid>

					<description><![CDATA[Imagine you&#8217;ve made a very huge flash application and many users will play with it every day. Imagine they don&#8217;t have the flashplayer debug installed and at certain points they fall into undiscovered application bugs ( it&#8217;s impossible to have a real bug free application, we know this ). Then, what happens? With the flashplayer &#8230; <a href="https://blog.sephiroth.it/2009/09/18/add-system-excepthook-in-actionscript/" class="more-link">Continue reading <span class="screen-reader-text">Add system excepthook in actionscript!</span></a>]]></description>
										<content:encoded><![CDATA[<p>Imagine you&#8217;ve made a very huge flash application and many users will play with it every day.</p>
<div>Imagine they don&#8217;t have the flashplayer debug installed and at certain points they fall into undiscovered application bugs ( it&#8217;s impossible to have a real bug free application, we know this ).</div>
<div>Then, what happens? With the flashplayer debug installed you can see the traceback and you can also continue or dismiss the code execution. But without the debug player? The code will try to continue but probably at that point your application is broken and users will feel it more and more uncomfortable with it.</div>
<div><strong>What I would like to have in flash</strong>, and probably you too, is a global system exception handling for those unhandled exception.</div>
<div>In this way you can both present the problem to your users and then also create a report system which will help you to improve and fix your own application!</div>
<div>Something like I did with <a href="http://sourceforge.net/projects/sepy/develop">SEPY</a> years ago using the <strong><a href="http://effbot.org/pyref/sys.excepthook.htm">sys.excepthook</a></strong> of python:</div>
<div><span style="font-style: italic;">When an exception is raised and uncaught, the interpreter calls sys.excepthook with three arguments, the exception class, exception instance, and a traceback object. In an interactive session this happens just before control is returned to the prompt; in a Python program this happens just before the program exits. The handling of such top-level exceptions can be customized by assigning another three-argument function to sys.excepthook.</span></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2009/09/18/add-system-excepthook-in-actionscript/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>My first Firefox extension! (FlashTracer)</title>
		<link>https://blog.sephiroth.it/2006/10/01/my-first-firefox-extension-flashtracer/</link>
					<comments>https://blog.sephiroth.it/2006/10/01/my-first-firefox-extension-flashtracer/#comments</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Sun, 01 Oct 2006 19:01:29 +0000</pubDate>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[flash player]]></category>
		<category><![CDATA[flash tracer]]></category>
		<category><![CDATA[tracer]]></category>
		<category><![CDATA[xul]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=173</guid>

					<description><![CDATA[Flashtracer, a firefox sidebar extension
]]></description>
										<content:encoded><![CDATA[<p>Ok, it does nothing particular new, but it&#8217;s my first one 🙂</p>
<p><strong>What it does?</strong><br />
If you have a flash <a href="http://download.macromedia.com/pub/flashplayer/updaters/9/flashplayer_9_plugin_debug.exe">debug player version</a> you will see in the firefox sidebar all the swf trace output while running any of the swf in a browser window.<br />
I have to say thanks to <a href="http://www.digitalhandworks.com/">jayjam</a> (Giuseppe Montemurro) who talks about the mm.cfg file yesterday at the From A to Web Adobe conference. I&#8217;d never read about this cool feature of the debug players.. and so I decided to make it as firefox extension.<br />
I took 1 hour to make the <a href="http://www.mozilla.org/projects/xul/">XUL</a> and js files, while the .xpi package was driving me crazy!.. the documentation is really terrible for my point of view.</p>
<p><a href="http://www.sephiroth.it/firefox/flashtracer/"><img loading="lazy" decoding="async" src="http://www.sephiroth.it/weblog/archives/images/install.png" border="0" alt="" hspace="4" width="24" height="24" align="left" /></a><strong><a title="Firefox extensions" href="https://blog.sephiroth.it/firefox-extensions/">Download</a></strong> and install FlashTracer from the Firefox extension page.</p>
<div style="margin: 5px; padding: 5px; border: 2px solid #FF0000;">
<p><span style="color: #ff0000;"><strong>UPDATE:</strong></span> A new <strong>flash tracer</strong> called fbtracer has been released. This new extension is integrated into Firebug. <a title="Flash Tracer for Firebug" href="https://blog.sephiroth.it/firefox-extensions/flash-tracer-for-firebug/">Read more here</a></p>
</div>
<p><strong>P.S.</strong> If you&#8217;re running the new 9,0,28 Flash plugin probably you noticed this extension wont work anymore. Adobe changed something and the plugin doesn&#8217;t read as previously the mm.cfg file so I&#8217;m invetigating on it. In the meanwhile you should tell the extension to point to this file: <strong>C:\Documents and Settings\{user}\Application Data\Macromedia\Flash Player\Logs\flashlog.txt</strong>.</p>
<p>For mac osx it should be: <strong>username:Library:Preferences:Macromedia:Flash Player:Logs:flashlog.txt</strong></p>
<p>Using this path the flash tracer works again.</p>
<p>For discussing about this extension please use the <a href="http://forum.sephiroth.it/forumdisplay.php?f=7">forum</a> instead of the comments here 🙂</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2006/10/01/my-first-firefox-extension-flashtracer/feed/</wfw:commentRss>
			<slash:comments>192</slash:comments>
		
		
			</item>
		<item>
		<title>Debugging PHP with XDebug</title>
		<link>https://blog.sephiroth.it/2006/02/16/debugging-php-with-xdebug/</link>
					<comments>https://blog.sephiroth.it/2006/02/16/debugging-php-with-xdebug/#respond</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Thu, 16 Feb 2006 18:53:54 +0000</pubDate>
				<category><![CDATA[php]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[profiler]]></category>
		<category><![CDATA[traceback]]></category>
		<category><![CDATA[xdebug]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=129</guid>

					<description><![CDATA[In these days, working with PHP after a lot of time, I&#8217;ve installed this cool tool for debugging PHP (it supports both PHP 4 and 5). XDebug is really useful for debugging PHP, which is usually not really easy to debug, and also easy to install. It provides a lot of valuable debug informations, for &#8230; <a href="https://blog.sephiroth.it/2006/02/16/debugging-php-with-xdebug/" class="more-link">Continue reading <span class="screen-reader-text">Debugging PHP with XDebug</span></a>]]></description>
										<content:encoded><![CDATA[<p>In these days, working with PHP after a lot of time, I&#8217;ve installed this cool tool for debugging PHP (it supports both PHP 4 and 5).<br />
XDebug is really useful for debugging PHP, which is usually not really easy to debug, and also easy to install.<br />
It provides a lot of valuable debug informations, for example a full <a href="http://www.xdebug.org/screens.php">traceback for errors</a>, <a href="http://www.xdebug.org/docs-profiling.php">profilig</a> with memory and CPU usage, <a href="http://www.xdebug.org/docs-functions.php#profiling">profiling functions </a>, etc..<br />
I really suggest to take a look at it!<br />
Both Windows and Linux versions are available for download<br />
<a href="http://www.xdebug.org">http://www.xdebug.org</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2006/02/16/debugging-php-with-xdebug/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NetConnection Debugger Alternates</title>
		<link>https://blog.sephiroth.it/2005/12/16/netconnection-debugger-alternates/</link>
					<comments>https://blog.sephiroth.it/2005/12/16/netconnection-debugger-alternates/#comments</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Fri, 16 Dec 2005 19:05:32 +0000</pubDate>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[netconnection]]></category>
		<category><![CDATA[proxy]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=121</guid>

					<description><![CDATA[Today I&#8217;ve started a new Flash project which will also involve Flash Remoting. So I decided to try this ServiceCapture tools for debugging the amf messages as replacement of the builtin NetConnection debugger. I&#8217;m really suck of the flash NetConnection Debugger (it works 50% of the times for me). Sometimes I need to close and &#8230; <a href="https://blog.sephiroth.it/2005/12/16/netconnection-debugger-alternates/" class="more-link">Continue reading <span class="screen-reader-text">NetConnection Debugger Alternates</span></a>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignleft" style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; border: 0px initial initial;" src="http://kevinlangdon.com/serviceCapture/images/ss_small_amf.jpg" border="0" alt="" width="120" height="101" />Today I&#8217;ve started a new Flash project which will also involve Flash Remoting.<br />
So I decided to try this <strong>ServiceCapture</strong> tools for debugging the amf messages as replacement of the builtin NetConnection debugger.<br />
I&#8217;m really suck of the flash NetConnection Debugger (it works 50% of the times for me). Sometimes I need to close and re-open it in order to make it works again, sometimes it doesnt display anything at all&#8230;<br />
Btw, ServiceCapture can capture every kind of HTTP traffic, not only remoting calls and it has also a bandwidth simulation feature. (and these are cool features)<br />
However the full license costs $34.99, which is not so cheap for this kind of tool.<br />
<a href="http://kevinlangdon.com/serviceCapture/">http://kevinlangdon.com/serviceCapture/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2005/12/16/netconnection-debugger-alternates/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Xray ( The AdminTool ) becomes opensource</title>
		<link>https://blog.sephiroth.it/2005/08/25/xray-the-admintool-becomes-opensource/</link>
					<comments>https://blog.sephiroth.it/2005/08/25/xray-the-admintool-becomes-opensource/#respond</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Fri, 26 Aug 2005 01:27:03 +0000</pubDate>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[xray]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=101</guid>

					<description><![CDATA[xray
]]></description>
										<content:encoded><![CDATA[<p><a href="http://labs.blitzagency.com/wp-content/xray/images/icons/jpg/scaled_25.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img loading="lazy" decoding="async" class="alignleft" style="margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 93px; border: 0px initial initial;" src="http://labs.blitzagency.com/wp-content/xray/images/icons/jpg/scaled_25.jpg" border="0" alt="" width="93" height="53" /></a>Many of us used <strong>Admin tool</strong> for debugging flash movies in the past, being a great debugging tool (for me much better than the one provided in flash).<br />
Now Admin Tool is an opensource project!<br />
<strong>What is Xray?</strong><br />
Xray (The AdminTool) is a &#8220;snapshot viewer&#8221; of the current state of your Flash application without impacting the performance or the file size of your application. Xray&#8217;s true nature is to look into the very guts of the Flash application and dissolve the 2d myth you see on screen to a 3D tangible entity you can truly crawl through.<br />
The downloads provided with Xray are:</p>
<ul>
<li><a href="https://secure.sourcesecure.co.uk/trac/osflash/xray/browser/downloads/connector/xray_component_1.3.mxp">component package for AS2</a></li>
<li><a href="https://secure.sourcesecure.co.uk/trac/osflash/xray/browser/downloads/connector/xray_component_as1.mxp">component package for AS1</a></li>
<li><a href="https://secure.sourcesecure.co.uk/trac/osflash/xray/browser/downloads/connector_only">Connector-only package</a></li>
</ul>
<p>Other links:</p>
<ul>
<li><a href="https://secure.sourcesecure.co.uk/trac/osflash/xray/wiki">Wiki</a></li>
<li><a href="http://labs.blitzagency.com/wp-content/xray/docs/frames/index.htm">API</a></li>
<li><a href="https://secure.sourcesecure.co.uk/trac/osflash/xray/browser/downloads">Downloads</a></li>
</ul>
<p>More info available at: <a href="http://labs.blitzagency.com/?cat=2">http://labs.blitzagency.com/?cat=2</a><br />
<a href="http://www.osflash.org/doku.php?id=xray_the_admintool">http://www.osflash.org/doku.php?id=xray_the_admintool</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2005/08/25/xray-the-admintool-becomes-opensource/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Admin Tool</title>
		<link>https://blog.sephiroth.it/2005/02/24/admin-tool/</link>
					<comments>https://blog.sephiroth.it/2005/02/24/admin-tool/#respond</comments>
		
		<dc:creator><![CDATA[Alessandro Crugnola]]></dc:creator>
		<pubDate>Fri, 25 Feb 2005 05:16:05 +0000</pubDate>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[mxp]]></category>
		<guid isPermaLink="false">http://blog.sephiroth.it/?p=64</guid>

					<description><![CDATA[admin tool. debugger for flash<br />
]]></description>
										<content:encoded><![CDATA[<p>Some days ago a friend of mine showed me a &#8220;strange&#8221; (this is what i was thinking looking at that) application which made a complete debug of its flash movie.<br />
Wow, incredible easier easier and easier than the Flash builtin debugger!!<br />
Thus I immediately downloaded it and i was surprised of the impressive work this guy made!<br />
Reading from admin tool&#8217;s web page: <em><cite>The AdminTool (AT) is a &#8220;snapshot viewer&#8221; of the current state of your Flash application without impacting the performance or the file size of your application. &#8230; It Works when published in the FlashIDE, local player, web browser.  This means that you can debug your application at runtime from its intended location.</cite></em><br />
Basically it works with a <a href="http://acmewebworks.typepad.com/photos/uncategorized/componentspanel.jpg" target="_blank">Flash component</a> (an mxp extension) which resides in your swf library and open a localconnection to the main admin tool <a href="http://www.acmewebworks.com/admintool/images/screenshot_tooltip.jpg" target="_blank">interface</a>.<br />
Moreover you can change in realtime every property of your running swf to see what happens with that change.<br />
And you can execute actionscript code in runtime from the admin tool, and see that code executed in you swf!! You can see also every video and sound from the swf.<br />
The only requirement is that swf must be compiled for AS2 only.  Downloads (mxp, win exe, mac exe and help files) are availables here: <a href="http://acmewebworks.typepad.com/admintool/2005/01/admin_tool_down.html" target="_blank">http://acmewebworks.typepad.com/&#8230;/admin_tool_down.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.sephiroth.it/2005/02/24/admin-tool/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
