v8-debug
v1.0.1
Published
v8 debugger extending API
Downloads
3,523
Readme
v8-debug
Provides extending API for node internal debugger protocol (based on v8 debugger protocol)
This is a part of node-inspector.
Installation
npm install v8-debug
API
registerCommand(name, callback)
Registers new debug processor command, like lookup
.
callback
accepts two arguments - request and response.
You need to modify response.body
if you want to return something to caller.
debug.registerCommand('_lookup', function(request, response) {
var test = request.attributes;
//do someting here
//and modify response
response.body = {
test: test
};
});
registerEvent(eventName)
This is a shortcut for:
debug.registerCommand('someEvent', debug.commandToEvent);
execCommand(commandName, attributes)
Calls debug processor command like 'lookup'.
attributes
will be passed to registerCommand.callback
as request.attributes
.
attributes
needs to be valid JSON object.
debug.registerCommand('_lookup', function(request, response) {
var test = request.attributes;
//do someting here
//and modify response
response.body = {
test: test
};
});
debug.execCommand('_lookup', { attr: 'test' });
emitEvent(eventName, attributes)
This is a semantic alias for execCommand
debug.emitEvent('myEvent', { attr: 'test' });
commandToEvent(request, response)
response
object has a different structure for commands and events.
By default registerCommand.callback
receives command's response.
This is a small converter.
debug.registerCommand('someEvent1', function(request, response) {
debug.commandToEvent(request, response);
});
debug.registerCommand('someEvent2', debug.commandToEvent);
Use debug.registerEvent
instead of this.
runInDebugContext(script)
(alias get
)
Evaluates string or function (will be stringifyed) in debug context.
var MakeMirror = debug.get('MakeMirror');
var mirror = MakeMirror({ test: 1 });
getFromFrame(index, value)
Tries to receive a value
from targeted frame scopes
function a(options) {
//...
b();
}
function b() {
// There is no info about `options` object
var options = debug.getFromFrame(1, 'options');
}
enableWebkitProtocol()
Enables experimental usage of WebKit protocol
registerAgentCommand(command, parameters, callback)
Experimental method for registering WebKit protocol handlers
Usage
Simple console.log checking
var debug = require('v8-debug');
debug.registerEvent('console.log');
console.log = (function(fn) {
return function() {
debug.emitEvent('console.log', {message: arguments[0]} /*, userdata*/);
return fn.apply(console, arguments);
}
} (console.log));
For more experience see protocol documentation