IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

完全私的 忘却防止メモ Firefox 上の全ての関数監視

with(Components)
var jsd = 
  classes['@mozilla.org/js/jsd/debugger-service;1']
    .getService(interfaces.jsdIDebuggerService);
var store = new なんかストレージっぽいもの;
function hook() {
  jsd.enumerateScripts({enumerateScript: function(s){store.add(s)}});
  jsd.scriptHook = {
    onScriptCreated: function(s) {store.add(s)},
    onScriptDestroyed: function(s) {store.remove(s)}
  };
}
jsd.breakpointHook = { onExecute: function(frame, type, value) { /* ... */ } }
script.setBreakpoint(script.lineToPc(lineNo, Components.interfaces.jsdIScript.PCMAP_SOURCETEXT));