As I understand JSD, the code below would print
Pause by debugger key word
then continue. That is, the JS engine would not stop because the
onExecute hook returned normally.

To be able to run JS with the onExecute hook, you need to call
jsd.enterNestedEventLoop(), wait for your button event, then call
exitNestedEventLoop().

jjb

On Mar 16, 6:57 am, Joe <[email protected]> wrote:
> Hi Dougal
>
> Thanks for link, I have seen it before, My code can now stop script :
>
>           jsds.debuggerHook = { onExecute: function(frame, type, rv){
>             dump('Pause by debugger key word');
>                 return jsdIExecutionHook.RETURN_CONTINUE;
>           } };
>
> but I cant figure out how to resume it , I mean I cant find which
> function 
> inhttp://code.google.com/p/fbug/source/browse/trunk/content/firebug/deb...
> orhttp://code.google.com/p/fbug/source/browse/trunk/components/firebug-...
> handle resume after break on "debugger" keyword
>
> On Mar 16, 4:50 pm, Dougal Matthews <[email protected]> wrote:
>
> > Reading through this may help 
> > you;http://code.google.com/p/fbug/source/browse/trunk/content/firebug/deb...
>
> > Dougal
>
> > ---
> > Dougal Matthews - @d0ugalhttp://www.dougalmatthews.com/
>
> > 2009/3/16 Dougal Matthews <[email protected]>
>
> > > I might be wrong but when the JavaScript runs as a plugin it has access to
> > > these things but when you write code inside the browsers you can't access
> > > interact with it the same way and thus can't do debugging type operations.
> > > Dougal
>
> > > ---
> > > Dougal Matthews - @d0ugal
> > >http://www.dougalmatthews.com/
>
> > > 2009/3/16 Joe <[email protected]>
>
> > >> Hi
>
> > >> I am trying to implement a ideal pause function in JavaScript under
> > >> Mozilla environment.
> > >> Here is my strategy:
> > >> Put some breakpoints (debugger;) in Script then using "@mozilla.org/js/
> > >> jsd/debugger-service;1 
> > >> <http://mozilla.org/js/%0Ajsd/debugger-service;1>";
> > >> service to pause script and after some events
> > >> fire then continue Script
>
> > >> I tried to figure out how firebug handle breakpoints but there isnt
> > >> any documentation on the web
> > >> Here is my XUL code which can handle debugger:
> > >> ---------------------------------------------------------------------
> > >> <?xml version="1.0"?>
> > >> <!DOCTYPE window SYSTEM "chrome://chatzilla/locale/chatzilla.dtd">
> > >> <?xul-overlay href="chrome://global/content/globalOverlay.xul"?>
>
> > >> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/
> > >> there.is.only.xul"
> > >>  id="main-window" orient="vertical" onclose="onClose();">
>
> > >>  <script>
> > >>    <![CDATA[
>
> > >>          const jsdIExecutionHook =
> > >> Components.interfaces.jsdIExecutionHook;
>
> > >>          dump ("Debugging starts\n");
> > >>      var scriptHook = {
> > >>          onScriptCreated: function scripthook (script) { },
> > >>          onScriptDestroyed: function scripthook (script) { }
> > >>      };
> > >>          var errorHook = {
> > >>                   onError: function(message, fileName, lineNo, pos, 
> > >> flags,
> > >> errnum,
> > >> exc){
> > >>                     dump( "message: " + message + " Line: " + lineNo +
> > >> "\n");
> > >>                   }
> > >>          };
>
> > >>      netscape.security.PrivilegeManager.enablePrivilege
> > >> ('UniversalXPConnect');
> > >>      const JSD_CTRID = "@mozilla.org/js/jsd/debugger-service;1";
> > >>      const jsdIDebuggerService =
> > >> Components.interfaces.jsdIDebuggerService;
>
> > >>      var jsds = Components.classes[JSD_CTRID].getService
> > >> (jsdIDebuggerService);
> > >>      jsds.scriptHook = scriptHook;
> > >>      jsds.errorHook = errorHook;
> > >>          jsds.debuggerHook = { onExecute: function(frame, type, rv){
> > >>            dump('Pause by debugger key word');
> > >>                return jsdIExecutionHook.RETURN_CONTINUE;
> > >>          } };
> > >>      jsds.enumerateScripts ( { enumerateScript: function(script) { /
> > >> *dump('enumerateScript\n');*/} });
>
> > >>      jsds.on();
>
> > >>      function onClose () {
> > >>        netscape.security.PrivilegeManager.enablePrivilege
> > >> ('UniversalXPConnect');
> > >>        jsds.off();
> > >>      }
> > >>      function onKeyPress (e) {
> > >>         if (e.keyCode == 13)
> > >>            doEval();
> > >>      }
> > >>      function doEval() {
> > >>         var ex;
> > >>         try {
> > >>           var rv = eval(document.getElementById("input-box").value);
> > >>           document.getElementById("output-box").value = rv;
> > >>         } catch (ex) {
> > >>           document.getElementById("output-box").value =
> > >>             "Caught exception: " + String(ex);
> > >>         }
> > >>         finally { }
> > >>      }
> > >>    ]]>
> > >>  </script>
>
> > >>  <textbox id="input-box" style="width:100%" multiline="true"/>
> > >>  <button label = "Execute" oncommand="doEval();" />
> > >>  <textbox id="output-box" style="width:100%" readonly="true"/>
> > >> </window>
> > >> ---------------------------------------------------------------------
>
> > >> Now my problem is how to continue code when it is on the pause ?
> > >> Maybe some functions arent complete but I cant figure out more, so
> > >> please help me to complete it
>
> > >> P.S: to try pause just paste this code in first textbox:
> > >> debbuger;
> > >> alert('some text here')
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Firebug" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/firebug?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to