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 in
http://code.google.com/p/fbug/source/browse/trunk/content/firebug/debugger.js
or
http://code.google.com/p/fbug/source/browse/trunk/components/firebug-service.js
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
-~----------~----~----~----~------~----~------~--~---