stuff I use for debugging

    Date: 10/21/07 (Javascript Community)    Keywords: no keywords

    Hi,

    This is my first post here; hope not last.
    Here are three funny functions; the first one dumps the output to a filed if it exists (please define forId() yourself; on my cellphone document.getElementById does not even exist).

    show() converts a string of unknown nature into a readable sequence of bytes;
    describe() describes the structure of an object. It was made almost obsolete by firebug, of course.

    var patience_ = 100;
    
    function debug(msg, opt_data) {
      try {
        if (patience_ --> 0 && forId("debug")) {
            forId("debug").value += (new Date()).getTime() + "] " + msg + " " +
                                    show(opt_data) + "\n";
        }
      } catch(e) {
        alert("debug: " + e);
      }
    }
    
    function show(s) {
      var buf = [];
      try {
        if (s) {
          for (var i = 0; i < s.length; i++) {
            var c= s.charCodeAt(i);
            var hex = c.toString(16);
            while (hex.length < 4) hex = '0' + hex;
            buf.push((c < 128 && c > 31) ? s.charAt(i) : ("\\u" + hex));
          }
        }
      } catch(e) {
        buf.push("\n");
        buf.push(e);
      }
      return buf.join("");
    }
    
    function describe(item) {
      var s = [''];
      try {
        for (var x in item) {
          if (!item[x]) {
            s.push(x);
          } else {
            var value = item[x].toString();
            s.push(x);
            if (typeof item[x] == 'function') {
              s.push('()');
            } else {
              s.push(':');
              s.push(value.length < 100 ? value : (value.substring(0,100) + "..."));
            }
          }
          s.push(', ');
        }
      } catch(e) {
        s.push("\nError:");
        s.push(e);
      }
      return s.join('');
    }
    
    

    Source: http://community.livejournal.com/javascript/143529.html

« talk about useful... || One problem, similar to... »


antivirus | apache | asp | blogging | browser | bugtracking | cms | crm | css | database | ebay | ecommerce | google | hosting | html | java | jsp | linux | microsoft | mysql | offshore | offshoring | oscommerce | php | postgresql | programming | rss | security | seo | shopping | software | spam | spyware | sql | technology | templates | tracker | virus | web | xml | yahoo | home