- Updated my Xdebug slides for the 4 Developers Conference

This commit is contained in:
Derick Rethans
2010-03-24 21:09:13 +00:00
parent fac278bc49
commit 951a284291
9 changed files with 256 additions and 35 deletions

View File

@@ -6,12 +6,7 @@
<bullet>DBGp, common Debugging protocol</bullet>
<bullet>Cross-language: PHP, Python, Perl...</bullet>
<bullet>Supported in Xdebug 2</bullet>
<bullet>Clients: Komodo, Eclipse/PDT, Zend Studio for Eclipse, Netbeans (and many others smaller ones)</bullet>
<bullet>Clients: Komodo, Eclipse/PDT, Zend Studio for Eclipse, Netbeans
(and many others: <link href="http://xdebug.org/docs/remote#clients"/>)</bullet>
</list>
<break />
<link leader="Other clients and plugins: ">http://xdebug.org/docs/remote#clients</link>
<break />
<blurb>Zend Studio "hack":</blurb>
<link>http://forums.zend.com/viewtopic.php?f=59&amp;t=573</link>
<blurb>No longer needed from the 7.1 version</blurb>
</slide>

View File

@@ -1,12 +1,18 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<slide fontsize="6em">
<title>What Code Do I Use</title>
<subtitle>Code Coverage</subtitle>
<blurb>Options to xdebug_start_code_coverage():</blurb>
<blurb>Functions for obtaining coverage information:</blurb>
<example>xdebug_start_code_coverage();
xdebug_get_code_coverage();
xdebug_stop_code_coverage();</example>
<blurb>Options to xdebug_start_code_coverage(), both only work for files parsed *from* this moment:</blurb>
<list>
<bullet>XDEBUG_CC_UNUSED: Enables scanning of code to figure out which line has executable code.</bullet>
<bullet>XDEBUG_CC_DEAD_CODE: Enables branch analyzation to figure out whether code can be executed.</bullet>
</list>
<break/>
<link target="new" href="http://kossu/coverage/index.html">demo</link>
</slide>

View File

@@ -4,11 +4,8 @@
<blurb>php.ini settings:</blurb>
<example class="code_large" type="ini">xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.extended_info=1</example>
xdebug.remote_port=9000</example>
<break lines="2"/>
@@ -23,5 +20,5 @@ xdebug.extended_info=1</example>
<break lines="2"/>
<blurb>With a firefox extension:</blurb>
<blurb class="small_blurb">% http://bit.ly/x6bf4%</blurb>
<blurb class="small_blurb"><link href="https://addons.mozilla.org/en-US/firefox/addon/58688"/></blurb>
</slide>

View File

@@ -1,6 +1,4 @@
<slide>
<title>Demo</title>
<break lines="13"/>
<blurb class="xx_large_blurb_center">demo</blurb>
<break lines="12"/>
<blurb class="center-page">demo</blurb>
</slide>

View File

@@ -2,7 +2,7 @@
<slide fontsize="6em">
<title>Profiling</title>
<subtitle>KCacheGrind's Flat Profile and Call List</subtitle>
<image filename="pg1.png" align="right"/>
<image filename="pg1.png"/>
<example class="code_large">xdebug.profiler_enable=1 ; enable profiler
xdebug.profile_output_dir=/tmp ; output directory

View File

@@ -2,12 +2,100 @@
<slide>
<title>Help By Error Messages</title>
<image filename="stacktrace3a.png" align="center"/>
<blurb>... is kinda useless.</blurb>
<div effect="hide">
<break lines="2"/>
<image filename="stacktrace3b.png" align="center" y-offset="3" pdf-scale="0.7"/>
<blurb>%xdebug.collect_params=1% and %xdebug.show_local_vars=1%</blurb>
<div effect="fade-out">
<html><![CDATA[<b>Warning</b>: DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Document is empty in /home/httpd/presentations, line: 1 in <b>/home/httpd/pres2/show2.php</b> on line <b>161</b><br />]]></html>
</div>
<div effect="fade-in-out">
<html><![CDATA[<table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Document is empty in /home/httpd/presentations, line: 1 in /home/httpd/pres2/show2.php on line <i>161</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0022</td><td bgcolor='#eeeeec' align='right'>786328</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0180</td><td bgcolor='#eeeeec' align='right'>1397248</td><td bgcolor='#eeeeec'>Presentation->display( )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>110</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0183</td><td bgcolor='#eeeeec' align='right'>1399032</td><td bgcolor='#eeeeec'>DOMDocument->load( )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>161</td></tr>
</table>]]></html>
<example>xdebug.default_enable=1</example>
</div>
<div effect="fade-in-out">
<html><![CDATA[<table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Document is empty in /home/httpd/presentations, line: 1 in /home/httpd/pres2/show2.php on line <i>161</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0024</td><td bgcolor='#eeeeec' align='right'>786328</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0183</td><td bgcolor='#eeeeec' align='right'>1397248</td><td bgcolor='#eeeeec'>Presentation->display( <span><font color='#3465a4'>null</font></span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>110</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0185</td><td bgcolor='#eeeeec' align='right'>1399032</td><td bgcolor='#eeeeec'>DOMDocument->load( <span><font color='#cc0000'>string(32)</font></span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>161</td></tr>
</table>]]></html>
<example>xdebug.show_local_vars=1</example>
</div>
<div effect="fade-in-out">
<html><![CDATA[<table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Document is empty in /home/httpd/presentations, line: 1 in /home/httpd/pres2/show2.php on line <i>161</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0022</td><td bgcolor='#eeeeec' align='right'>787720</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0183</td><td bgcolor='#eeeeec' align='right'>1398552</td><td bgcolor='#eeeeec'>Presentation->display( <span title='NULL'><font color='#3465a4'>null</font></span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>110</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0186</td><td bgcolor='#eeeeec' align='right'>1400336</td><td bgcolor='#eeeeec'>DOMDocument->load( <span title='&apos;/home/httpd/pres2/presentations/&apos;'><font color='#cc0000'>string(32)</font></span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>161</td></tr>
</table>]]></html>
<example>xdebug.show_local_vars=2</example>
</div>
<div effect="fade-in-out">
<html><![CDATA[<table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Document is empty in /home/httpd/presentations, line: 1 in /home/httpd/pres2/show2.php on line <i>161</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0013</td><td bgcolor='#eeeeec' align='right'>787720</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0105</td><td bgcolor='#eeeeec' align='right'>1398552</td><td bgcolor='#eeeeec'>Presentation->display( <span>NULL</span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>110</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0106</td><td bgcolor='#eeeeec' align='right'>1400336</td><td bgcolor='#eeeeec'>DOMDocument->load( <span>&apos;/home/httpd/pres2/presentations/&apos;</span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>161</td></tr>
</table>]]></html>
<example>xdebug.show_local_vars=3</example>
</div>
<div effect="fade-in-out">
<html><![CDATA[<table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Document is empty in /home/httpd/presentations, line: 1 in /home/httpd/pres2/show2.php on line <i>161</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0013</td><td bgcolor='#eeeeec' align='right'>787720</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0102</td><td bgcolor='#eeeeec' align='right'>1398552</td><td bgcolor='#eeeeec'>Presentation->display( <span>$slideNr = </span><span>NULL</span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>110</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0103</td><td bgcolor='#eeeeec' align='right'>1400336</td><td bgcolor='#eeeeec'>DOMDocument->load( <span>&apos;/home/httpd/pres2/presentations/&apos;</span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'>../show2.php<b>:</b>161</td></tr>
</table>]]></html>
<example>xdebug.show_local_vars=4</example>
</div>
<div effect="fade-in-out">
<html><![CDATA[<table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Document is empty in /home/httpd/presentations, line: 1 in <a style='color: black' href='gvim:///home/httpd/pres2/show2.php@161'>/home/httpd/pres2/show2.php</a> on line <i>161</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0027</td><td bgcolor='#eeeeec' align='right'>787720</td><td bgcolor='#eeeeec'>{main}( )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'><a style='color: black' href='gvim:///home/httpd/pres2/show2.php@0'>../show2.php<b>:</b>0</a></td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0190</td><td bgcolor='#eeeeec' align='right'>1398160</td><td bgcolor='#eeeeec'>Presentation->display( <span>$slideNr = </span><span>NULL</span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'><a style='color: black' href='gvim:///home/httpd/pres2/show2.php@110'>../show2.php<b>:</b>110</a></td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0193</td><td bgcolor='#eeeeec' align='right'>1399944</td><td bgcolor='#eeeeec'>DOMDocument->load( <span>&apos;/home/httpd/pres2/presentations/&apos;</span> )</td><td title='/home/httpd/pres2/show2.php' bgcolor='#eeeeec'><a style='color: black' href='gvim:///home/httpd/pres2/show2.php@161'>../show2.php<b>:</b>161</a></td></tr>
</table>]]></html>
<example>xdebug.file_link_format=gvim://%f@%l</example>
<example><![CDATA[#! /bin/sh
f=`echo $1 | cut -d @ -f 1 | sed 's/gvim:\/\///'`
l=`echo $1 | cut -d @ -f 2`
gvim --remote-tab +$l $f]]></example>
<blurb>Add the new boolean config value (config:about) "network.protocol-handler.expose.gvim" as false. First time you click it, select the shell script.</blurb>
</div>
</slide>

View File

@@ -2,16 +2,40 @@
<slide fontsize="6em">
<title>Execution trace</title>
<image filename="tracefile-ezc.png" align="center" pdf-scale="0.7"/>
<html class="vim-export"><![CDATA[
<font face="monospace">
<font color="#ffff00"><b>TRACE START</b></font>&nbsp;<font color="#ffff00"><b>[2010-03-24 11:03:12]</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0022&nbsp;&nbsp;&nbsp;&nbsp; 787776&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#ff6060"><b>{main}()</b></font>&nbsp;/home/httpd/pres2/show2.php<font color="#ff40ff"><b>:0</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0028&nbsp;&nbsp;&nbsp;&nbsp; 803160&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>require(</b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#00ffff"><b>) </b></font>/home/httpd/pres2/show2.php<font color="#ff40ff"><b>:2</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0029&nbsp;&nbsp;&nbsp;&nbsp; 803552&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>dirname(</b></font>'/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#ff40ff"><b>:12</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0030&nbsp;&nbsp;&nbsp;&nbsp; 803968&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>explode(</b></font>'/', '/home/derick/dev/ezcomponents/trunk/Base/src'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#ff40ff"><b>:13</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0031&nbsp;&nbsp;&nbsp;&nbsp; 807352&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>count(</b></font>array (0 <font color="#ffff00"><b>=&gt; '', 1 =&gt; 'home', 2 =&gt; 'derick', 3 =&gt; 'dev', 4 =&gt; 'ezcomponents', 5 =&gt; 'trunk', 6 =&gt; 'Base', 7 =</b></font>&gt; 'src')<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#ff40ff"><b>:15</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0032&nbsp;&nbsp;&nbsp;&nbsp; 807800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>array_slice(</b></font>array (0 <font color="#ffff00"><b>=&gt; '', 1 =&gt; 'home', 2 =&gt; 'derick', 3 =&gt; 'dev', 4 =&gt; 'ezcomponents', 5 =&gt; 'trunk', 6 =&gt; 'Base', 7 =</b></font>&gt; 'src'), 0, <font color="#ff6060"><b>-2</b></font><font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#ff40ff"><b>:17</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0033&nbsp;&nbsp;&nbsp;&nbsp; 808952&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>join(</b></font>'/', array (0 <font color="#ffff00"><b>=&gt; '', 1 =&gt; 'home', 2 =&gt; 'derick', 3 =&gt; 'dev', 4 =&gt; 'ezcomponents', 5 =</b></font>&gt; 'trunk')<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#ff40ff"><b>:17</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0065&nbsp;&nbsp;&nbsp;&nbsp;1002544&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>require(</b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#ff40ff"><b>:18</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0066&nbsp;&nbsp;&nbsp;&nbsp; 990560&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>__autoload(</b></font>'ezcTemplateCustomFunction'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#ff40ff"><b>:0</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0066&nbsp;&nbsp;&nbsp;&nbsp; 990560&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>ezcBase::</b></font><font color="#00ffff"><b>autoload(</b></font>'ezcTemplateCustomFunction'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/ezc_bootstrap.php<font color="#ff40ff"><b>:38</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0067&nbsp;&nbsp;&nbsp;&nbsp; 990560&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>ezcBase::</b></font><font color="#00ffff"><b>setPackageDir(</b></font><font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:125</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0068&nbsp;&nbsp;&nbsp;&nbsp; 990832&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>dirname(</b></font>'/home/derick/dev/ezcomponents/trunk/Base/src/base.php'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:244</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0069&nbsp;&nbsp;&nbsp;&nbsp; 990728&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>array_key_exists(</b></font>'ezcTemplateCustomFunction', array ()<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:128</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0069&nbsp;&nbsp;&nbsp;&nbsp; 990728&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>array_key_exists(</b></font>'ezcTemplateCustomFunction', array ()<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:142</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0070&nbsp;&nbsp;&nbsp;&nbsp; 991536&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>preg_match(</b></font>'/^(<font color="#ffff00"><b>[a-z0-9]*)([A-Z][a-z0-9]*)?([A-Z][a-z0-9]</b></font>*)?/', 'ezcTemplateCustomFunction', NULL<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:157</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0072&nbsp;&nbsp;&nbsp;&nbsp; 993304&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>sizeof(</b></font>array (0 <font color="#ffff00"><b>=&gt; 'ezcTemplateCustom', 1 =&gt; 'ezc', 2 =&gt; 'Template', 3 =</b></font>&gt; 'Custom')<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:161</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0073&nbsp;&nbsp;&nbsp;&nbsp; 993664&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>strtolower(</b></font>'Template_Custom_autoload.php'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:165</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0073&nbsp;&nbsp;&nbsp;&nbsp; 993496&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>ezcBase::</b></font><font color="#00ffff"><b>requireFile(</b></font>'template_custom_autoload.php', 'ezcTemplateCustomFunction', 'ezc'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:167</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0074&nbsp;&nbsp;&nbsp;&nbsp; 994184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>file_exists(</b></font>'/home/derick/dev/ezcomponents/trunk/Base/src/../../autoload/template_custom_autoload.php'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:278</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0075&nbsp;&nbsp;&nbsp;&nbsp; 993848&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>strtolower(</b></font>'Template_autoload.php'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:175</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0076&nbsp;&nbsp;&nbsp;&nbsp; 993888&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>ezcBase::</b></font><font color="#00ffff"><b>requireFile(</b></font>'template_autoload.php', 'ezcTemplateCustomFunction', 'ezc'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:177</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0077&nbsp;&nbsp;&nbsp;&nbsp; 994568&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>file_exists(</b></font>'/home/derick/dev/ezcomponents/trunk/Base/src/../../autoload/template_autoload.php'<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:278</b></font><br>
&nbsp;&nbsp;&nbsp;&nbsp;0.0100&nbsp;&nbsp;&nbsp;&nbsp;1105728&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#ff40ff"><b>-&gt;</b></font>&nbsp;<font color="#00ffff"><b>require(</b></font>/home/derick/dev/ezcomponents/trunk/autoload/template_autoload.php<font color="#00ffff"><b>) </b></font>/home/derick/dev/ezcomponents/trunk/Base/src/base.php<font color="#ff40ff"><b>:280</b></font><br>
</font>
]]></html>
<break/>
<blurb>Some settings:</blurb>
<break/>
<example class="code_large">xdebug.auto_trace=1
xdebug.trace_output_dir=/tmp
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.trace_output_name=trace.%c</example>
<link leader="Specifiers: " href="http://xdebug.org/docs/execution_trace#trace_output_name"/>
<break/>
</slide>

View File

@@ -2,17 +2,84 @@
<slide fontsize="6em">
<title>Pretty Printing Variables</title>
<image filename="var_dump.png" align="center" pdf-scale="0.7"/>
<break lines="2"/>
<div effect="fade-out">
<html><![CDATA[array(3) {
[0]=>
NULL
[1]=>
float(3.141592654)
[2]=>
array(1) {
["dutch"]=>
object(locale)#1 (6) {
["lang"]=>
string(2) "nl"
["variation"]=>
string(2000) "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
["charsets"]=>
array(2) {
[0]=>
string(9) "iso-88591"
[1]=>
string(11) "iso-8859-15"
}
["mb_supported":"locale":private]=>
bool(false)
["self":protected]=>
object(locale)#1 (6) {
["lang"]=>
string(2) "nl"
["variation"]=>
string(2000) "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd"
["charsets"]=>
array(2) {
[0]=>
string(9) "iso-88591"
[1]=>
string(11) "iso-8859-15"
}
["mb_supported":"locale":private]=>
bool(false)
["self":protected]=>
*RECURSION*
["id":protected]=>
int(1)
}
["id":protected]=>
int(1)
}
}
}]]></html>
</div>
<div effect="fade-in">
<html><![CDATA[<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b>
0 <font color='#888a85'>=&gt;</font> <font color='#3465a4'>null</font>
1 <font color='#888a85'>=&gt;</font> <small>float</small> <font color='#f57900'>3.141592654</font>
2 <font color='#888a85'>=&gt;</font>
<b>array</b>
'dutch' <font color='#888a85'>=&gt;</font>
<b>object</b>(<i>locale</i>)[<i>1</i>]
<i>public</i> 'lang' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'nl'</font> <i>(length=2)</i>
<i>public</i> 'variation' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'abcdabcdabcdabcdabcdabcda'...</font> <i>(length=2000)</i>
<i>public</i> 'charsets' <font color='#888a85'>=&gt;</font>
<b>array</b>
0 <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'iso-88591'</font> <i>(length=9)</i>
1 <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'iso-8859-15'</font> <i>(length=11)</i>
<i>private</i> 'mb_supported' <font color='#888a85'>=&gt;</font> <small>boolean</small> <font color='#75507b'>false</font>
<i>protected</i> 'self' <font color='#888a85'>=&gt;</font>
<i>&</i><b>object</b>(<i>locale</i>)[<i>1</i>]
<i>protected</i> 'id' <font color='#888a85'>=&gt;</font> <small>int</small> <font color='#4e9a06'>1</font>
</pre>]]></html>
<blurb>Options:</blurb>
<example><![CDATA[<?php
ini_set( 'xdebug.var_display_max_data', 25 );
ini_set( 'xdebug.var_display_max_depth', 4 );
ini_set( 'xdebug.var_display_max_children', 32 );
xdebug_var_dump(); // or just var_dump()
?>]]></example>
<break lines="2"/>
<blurb>Turn off with:</blurb>
<blurb>Turn off in php.ini or .htaccess with:</blurb>
<example>xdebug.overload_var_dump = 0</example>
</div>
</slide>

46
xdebug-4dev10.xml Normal file
View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<presentation
template="css"
navmode="html"
navbarbackground="#4373b4"
navbartopiclinks="0"
navColor="#f1fbff"
logo1=""
stylesheet="presentations/slides/ezc/ez.css"
backgroundfixed="1" >
<topic>Debugging</topic>
<title>Xdebug - PHP developer's swiss-army knife</title>
<event>4 Developers Conference</event>
<location>Poznań, Poland</location>
<date>Mar 26th, 2010</date>
<speaker>Derick Rethans</speaker>
<email>derick@php.net</email>
<url>http://derickrethans.nl/talks.php</url>
<joindin>http://xdebug.org</joindin>
<twitter>derickr</twitter>
<slide>slides/dbus/title.xml</slide>
<slide>slides/toolbox/me.xml</slide>
<!-- INTRODUCTION -->
<slide>slides/xdebug/how-started.xml</slide>
<!-- INSTALLATION -->
<slide>slides/xdebug/why-crash.xml</slide>
<slide>slides/xdebug/where-error.xml</slide>
<slide>slides/xdebug/xdebug-var-dump.xml</slide>
<slide>slides/xdebug/wtf-happens.xml</slide>
<slide>slides/xdebug/functiontrace-computerized.xml</slide>
<slide>slides/xdebug/wtf-happens2.xml</slide>
<slide>slides/xdebug/live-demo.xml</slide>
<slide>slides/xdebug/codecoverage2.xml</slide>
<slide>slides/xdebug/profiling.xml</slide>
<slide>slides/xdebug/profiling2.xml</slide>
<slide>slides/xdebug/live-demo.xml</slide>
<slide>slides/xdebug/analyse-running-script.xml</slide>
<slide>slides/xdebug/debugger-activation.xml</slide>
<slide>slides/xdebug/live-demo.xml</slide>
<slide>slides/xdebug/resources.xml</slide>
</presentation>