<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: debug code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 24 Jul 2008 09:48:10 GMT</pubDate>
    <description>DZone Snippets: debug code</description>
    <item>
      <title>Using ruby-debug</title>
      <link>http://snippets.dzone.com/posts/show/4987</link>
      <description>Uses ruby-debug to step through a script at run-time. keywords: Debugger.start, debug_method&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;require 'ruby-debug'&lt;br /&gt;&lt;br /&gt;class ProjectX_handler&lt;br /&gt;  def invoke(project, method, params)&lt;br /&gt;    Debugger.start {&lt;br /&gt;    h = Hash.new&lt;br /&gt;    h['car_log'] = Car_log_handler.new&lt;br /&gt;    h['recordx'] = RecordX_handler.new&lt;br /&gt;    h['mrecord'] = MRecord_handler.new&lt;br /&gt;    h['fileop'] = FileOp_handler.new&lt;br /&gt;    h['rx2projectx'] = RX2ProjectX_handler.new&lt;br /&gt;    h['blog'] = Blog_handler.new&lt;br /&gt;  &lt;br /&gt;    h[project].invoke(method, params)&lt;br /&gt;    }&lt;br /&gt;  end&lt;br /&gt;  debug_method :invoke&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;at the (rdb:1) prompt you can type help for information on debugger commands. Commands I've tried so far are &lt;br /&gt;'step' (move to the next statement), &lt;br /&gt;list (show the current line of execution and the fragment of code which the debugger is current analysing),&lt;br /&gt;'break projectx_handler.rb:29' (go to the following line within the file specified, when execution is continued, &lt;br /&gt;'continue' (resume normal code execution),&lt;br /&gt;'v l'  (display local variables), and&lt;br /&gt;'p' (evaluate expression and print it's value)&lt;br /&gt;&lt;br /&gt;Note: Ruby-debug would not install properly on *Ubuntu 7.10, but installed fine on Ubuntu 7.4 and Gentoo 2007.1.&lt;br /&gt;* - extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)&lt;br /&gt;        from extconf.rb:1&lt;br /&gt;&lt;br /&gt;*update 12 Feb*&lt;br /&gt;found out that I needed the Ruby dev header files to install the Ruby-debug gem. Here's how sudo apt-get install ruby1.8-dev&lt;br /&gt;</description>
      <pubDate>Wed, 16 Jan 2008 11:06:46 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4987</guid>
      <author>jrobertson (James Robertson)</author>
    </item>
    <item>
      <title>dbg - debuging routine</title>
      <link>http://snippets.dzone.com/posts/show/4680</link>
      <description>A handy little routine to debug autoit scripts&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;dbg("Log this message")&lt;br /&gt;Func dbg($msg, $error=@error, $extended=@extended, $ScriptLineNumber=@ScriptLineNumber)&lt;br /&gt;    Local $out = "(" &amp; $ScriptLineNumber &amp; ")(" &amp; $error &amp; ")(" &amp; $extended &amp; ") := " &amp; $msg &lt;br /&gt;    ;Output to application attaching a console to the script engine&lt;br /&gt;    ConsoleWrite($msg &amp; @CRLF)&lt;br /&gt;    ;Output to debugger (dbgview.exe)&lt;br /&gt;    DllCall("kernel32.dll", "none", "OutputDebugString", "str", $out)&lt;br /&gt;EndFunc&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 20 Oct 2007 07:31:06 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4680</guid>
      <author>uten (ksflock)</author>
    </item>
    <item>
      <title>PHP Debugging</title>
      <link>http://snippets.dzone.com/posts/show/4411</link>
      <description>// Place at the top of script being developed&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;error_reporting(E_ALL);&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 10 Aug 2007 19:57:34 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4411</guid>
      <author>mjlintz ()</author>
    </item>
    <item>
      <title>JavaScript var_dump (Mark 2)</title>
      <link>http://snippets.dzone.com/posts/show/4296</link>
      <description>Same as var_dump for PHP, but for JavaScript.  Useful if you do not have Firebug.&lt;br /&gt;&lt;br /&gt;A typical useage:&lt;br /&gt;&lt;br /&gt;document.write(var_dump(ANY-JS-VAR,'html'));&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;     function var_dump(data,addwhitespace,safety,level) {&lt;br /&gt;        var rtrn = '';&lt;br /&gt;        var dt,it,spaces = '';&lt;br /&gt;        if(!level) {level = 1;}&lt;br /&gt;        for(var i=0; i&lt;level; i++) {&lt;br /&gt;           spaces += '   ';&lt;br /&gt;        }//end for i&lt;level&lt;br /&gt;        if(typeof(data) != 'object') {&lt;br /&gt;           dt = data;&lt;br /&gt;           if(typeof(data) == 'string') {&lt;br /&gt;              if(addwhitespace == 'html') {&lt;br /&gt;                 dt = dt.replace(/&amp;/g,'&amp;amp;');&lt;br /&gt;                 dt = dt.replace(/&gt;/g,'&amp;gt;');&lt;br /&gt;                 dt = dt.replace(/&lt;/g,'&amp;lt;');&lt;br /&gt;              }//end if addwhitespace == html&lt;br /&gt;              dt = dt.replace(/\"/g,'\"');&lt;br /&gt;              dt = '"' + dt + '"';&lt;br /&gt;           }//end if typeof == string&lt;br /&gt;           if(typeof(data) == 'function' &amp;&amp; addwhitespace) {&lt;br /&gt;              dt = new String(dt).replace(/\n/g,"\n"+spaces);&lt;br /&gt;              if(addwhitespace == 'html') {&lt;br /&gt;                 dt = dt.replace(/&amp;/g,'&amp;amp;');&lt;br /&gt;                 dt = dt.replace(/&gt;/g,'&amp;gt;');&lt;br /&gt;                 dt = dt.replace(/&lt;/g,'&amp;lt;');&lt;br /&gt;              }//end if addwhitespace == html&lt;br /&gt;           }//end if typeof == function&lt;br /&gt;           if(typeof(data) == 'undefined') {&lt;br /&gt;              dt = 'undefined';&lt;br /&gt;           }//end if typeof == undefined&lt;br /&gt;           if(addwhitespace == 'html') {&lt;br /&gt;              if(typeof(dt) != 'string') {&lt;br /&gt;                 dt = new String(dt);&lt;br /&gt;              }//end typeof != string&lt;br /&gt;              dt = dt.replace(/ /g,"&amp;nbsp;").replace(/\n/g,"&lt;br&gt;");&lt;br /&gt;           }//end if addwhitespace == html&lt;br /&gt;           return dt;&lt;br /&gt;        }//end if typeof != object &amp;&amp; != array&lt;br /&gt;        for (var x in data) {&lt;br /&gt;           if(safety &amp;&amp; (level &gt; safety)) {&lt;br /&gt;              dt = '*RECURSION*';&lt;br /&gt;           } else {&lt;br /&gt;              try {&lt;br /&gt;                 dt = var_dump(data[x],addwhitespace,safety,level+1);&lt;br /&gt;              } catch (e) {continue;}&lt;br /&gt;           }//end if-else level &gt; safety&lt;br /&gt;           it = var_dump(x,addwhitespace,safety,level+1);&lt;br /&gt;           rtrn += it + ':' + dt + ',';&lt;br /&gt;           if(addwhitespace) {&lt;br /&gt;              rtrn += '\n'+spaces;&lt;br /&gt;           }//end if addwhitespace&lt;br /&gt;        }//end for...in&lt;br /&gt;        if(addwhitespace) {&lt;br /&gt;           rtrn = '{\n' + spaces + rtrn.substr(0,rtrn.length-(2+(level*3))) + '\n' + spaces.substr(0,spaces.length-3) + '}';&lt;br /&gt;        } else {&lt;br /&gt;           rtrn = '{' + rtrn.substr(0,rtrn.length-1) + '}';&lt;br /&gt;        }//end if-else addwhitespace&lt;br /&gt;        if(addwhitespace == 'html') {&lt;br /&gt;           rtrn = rtrn.replace(/ /g,"&amp;nbsp;").replace(/\n/g,"&lt;br&gt;");&lt;br /&gt;        }//end if addwhitespace == html&lt;br /&gt;        return rtrn;&lt;br /&gt;     }//end function var_dump&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 12 Jul 2007 15:29:58 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4296</guid>
      <author>singpolyma ()</author>
    </item>
    <item>
      <title>Debug logs in the database</title>
      <link>http://snippets.dzone.com/posts/show/4077</link>
      <description>How to log things in the database&lt;br /&gt;&lt;br /&gt;Create the table:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;create table TMP_LOG (HORA date, ENTRADA varchar(4000));&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Write the things I need to the table:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;INSERT INTO TMP_LOG (HORA, ENTRADA) VALUES(SYSDATE, &lt;br /&gt;  'V_NOM_DESTINATARIO1: '||V_NOM_DESTINATARIO1||', V_DOM_DESTINATARIO1: '||V_DOM_DESTINATARIO1||&lt;br /&gt;  ', P_NOM_DESTINATARIO_2: '||P_NOM_DESTINATARIO_2||', P_DOM_DESTINATARIO_2: '||P_DOM_DESTINATARIO_2||&lt;br /&gt;  ', B_DESTINATARIO: '||B_DESTINATARIO||&lt;br /&gt;  ', V_NOM_DESTINATARIO2: '||V_NOM_DESTINATARIO2||', V_DOM_DESTINATARIO2: '||V_DOM_DESTINATARIO2);&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Consult the things written:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;select * from tmp_log order by hora desc;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Dont forget to drop it at the end:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;drop table TMP_LOG;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Wed, 30 May 2007 16:59:19 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4077</guid>
      <author>koke24 (Koke)</author>
    </item>
    <item>
      <title>Java: log4j Initialization Example</title>
      <link>http://snippets.dzone.com/posts/show/4013</link>
      <description>// Initialization for Basic Console Output&lt;br /&gt;// Ref: http://logging.apache.org/log4j/docs/manual.html&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt; import com.foo.Bar;&lt;br /&gt;&lt;br /&gt; // Import log4j classes.&lt;br /&gt; import org.apache.log4j.Logger;&lt;br /&gt; import org.apache.log4j.BasicConfigurator;&lt;br /&gt;&lt;br /&gt; public class MyApp {&lt;br /&gt;&lt;br /&gt;   // Define a static logger variable so that it references the&lt;br /&gt;   // Logger instance named "MyApp".&lt;br /&gt;   static Logger logger = Logger.getLogger(MyApp.class);&lt;br /&gt;&lt;br /&gt;   public static void main(String[] args) {&lt;br /&gt;&lt;br /&gt;     // Set up a simple configuration that logs on the console.&lt;br /&gt;     BasicConfigurator.configure();&lt;br /&gt;&lt;br /&gt;     logger.setLevel(Level.DEBUG); // optional if log4j.properties file not used&lt;br /&gt;     // Possible levels: TRACE, DEBUG, INFO, WARN, ERROR, and FATAL&lt;br /&gt;&lt;br /&gt;     logger.info("Entering application.");&lt;br /&gt;     Bar bar = new Bar();&lt;br /&gt;     bar.doIt();&lt;br /&gt;     logger.info("Exiting application.");&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 14 May 2007 09:44:45 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4013</guid>
      <author>thitiv (Thiti V. Sintopchai)</author>
    </item>
    <item>
      <title>Java DOM: Printing the Content of a Node</title>
      <link>http://snippets.dzone.com/posts/show/4011</link>
      <description>&lt;code&gt;&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;      // Set up the output transformer&lt;br /&gt;      TransformerFactory transfac = TransformerFactory.newInstance();&lt;br /&gt;      Transformer trans = transfac.newTransformer();&lt;br /&gt;      trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");&lt;br /&gt;      trans.setOutputProperty(OutputKeys.INDENT, "yes");&lt;br /&gt;&lt;br /&gt;      // Print the DOM node&lt;br /&gt;&lt;br /&gt;      StringWriter sw = new StringWriter();&lt;br /&gt;      StreamResult result = new StreamResult(sw);&lt;br /&gt;      DOMSource source = new DOMSource(node);&lt;br /&gt;      trans.transform(source, result);&lt;br /&gt;      String xmlString = sw.toString();&lt;br /&gt;&lt;br /&gt;      System.out.println(xmlString);&lt;br /&gt;    }&lt;br /&gt;    catch (TransformerException e)&lt;br /&gt;    {&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;    }&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 14 May 2007 09:19:05 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4011</guid>
      <author>thitiv (Thiti V. Sintopchai)</author>
    </item>
    <item>
      <title>Mostar los resultados de un cursor</title>
      <link>http://snippets.dzone.com/posts/show/3954</link>
      <description>Esto muestra los resultados de un cursor en la ventana de pruebas del SQL Developer&lt;br /&gt;&lt;br /&gt;Declaraci&#243;n de las variables&lt;br /&gt;&lt;code&gt;&lt;br /&gt;c1 varchar2(200);&lt;br /&gt;c2 varchar2(200);&lt;br /&gt;c3 varchar2(200);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;C&#243;digo en s&#237;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;fetch v_Return into c1, c2, c3;&lt;br /&gt;loop&lt;br /&gt;  EXIT WHEN v_Return%NOTFOUND;&lt;br /&gt;  DBMS_OUTPUT.PUT_LINE(c1||', '||c2||', '||c3);&lt;br /&gt;  fetch v_Return into c1, c2, c3;&lt;br /&gt;end loop;&lt;br /&gt;close v_Return;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ejemplo del c&#243;digo completo:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;DECLARE&lt;br /&gt;  PVCOD_DESPACHO NUMBER;&lt;br /&gt;  PVCOD_IDIOMA VARCHAR2(200);&lt;br /&gt;  v_Return PG_SGIE_Types.cursor_type;&lt;br /&gt;  c1 varchar2(200);&lt;br /&gt;  c2 varchar2(200);&lt;br /&gt;  c3 varchar2(200);&lt;br /&gt;BEGIN&lt;br /&gt;  PVCOD_DESPACHO := 2792;&lt;br /&gt;  PVCOD_IDIOMA := '1';&lt;br /&gt;&lt;br /&gt;  v_Return := FU_LISTAENVIOSDESPACHO(&lt;br /&gt;    PVCOD_DESPACHO =&gt; PVCOD_DESPACHO,&lt;br /&gt;    PVCOD_IDIOMA =&gt; PVCOD_IDIOMA&lt;br /&gt;  );&lt;br /&gt;  -- Modify the code to output the variable&lt;br /&gt;  --DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);&lt;br /&gt;  &lt;br /&gt;  fetch v_Return into c1, c2, c3;&lt;br /&gt;  loop&lt;br /&gt;    EXIT WHEN v_Return%NOTFOUND;&lt;br /&gt;    DBMS_OUTPUT.PUT_LINE(c1||', '||c2||', '||c3);&lt;br /&gt;    fetch v_Return into c1, c2, c3;&lt;br /&gt;  end loop;&lt;br /&gt;  close v_Return;&lt;br /&gt;END;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 04 May 2007 10:04:24 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3954</guid>
      <author>koke24 (Koke)</author>
    </item>
    <item>
      <title>Which class file is loaded by the classloader ?</title>
      <link>http://snippets.dzone.com/posts/show/3719</link>
      <description>When using lots of third-party libraries, one problem might be that 2 of them package different versions of the same class, producing errors when method version conflicts happen.&lt;br /&gt;&lt;br /&gt;Here is a simple way to know the exact location used by the classloader to get your class :&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;URL myClassURL = MyMysteryClass.class.getProtectionDomain().getCodeSource().getLocation();&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 23 Mar 2007 11:38:37 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3719</guid>
      <author>nivek (Kevin Gaudin)</author>
    </item>
    <item>
      <title>Tomcat debug</title>
      <link>http://snippets.dzone.com/posts/show/3098</link>
      <description>// description of your code here&lt;br /&gt;Parametre de conf pour lancer un tomcat en debug afin de se connecter a distance sur le port 8000&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Xdebug -Xrunjdwp:transport=dt_socket,adress=8000,server=y,suspend=n&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 06 Dec 2006 18:25:59 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3098</guid>
      <author>Mickael (Mickael)</author>
    </item>
  </channel>
</rss>
