name = "break"; | |
group = "breakpoints"; | |
shortDescription = "Set a breakpoint at specified location"; | |
longDescription = "break <file>:<line> : Sets a breakpoint at the given location."; | |
longDescription += "\nbreak <line> : Sets a breakpoint at the given line of the current file."; | |
argumentTypes = [ "script-filename" ]; | |
aliases = [ "b" ]; | |
seeAlso = [ "condition", "delete", "disable", "tbreak" ]; | |
function execute() { | |
if (arguments.length == 0) { | |
message("Missing argument."); | |
return; | |
} | |
var arg = arguments[0]; | |
var colonIndex = arg.lastIndexOf(':'); | |
if (colonIndex == -1) { | |
lineNumber = parseInt(arg); | |
if (isNaN(lineNumber)) { | |
message("Breakpoint location must be of the form <file>:<line> or <line>."); | |
return; | |
} | |
var sid = getCurrentScriptId(); | |
if (sid == -1) { | |
message("No script."); | |
return; | |
} | |
scheduleGetScriptData(sid); | |
scriptId = sid; | |
state = 1; | |
} else { | |
fileName = arg.slice(0, colonIndex); | |
lineNumber = parseInt(arg.slice(colonIndex+1)); | |
// ### resolve the script to see if it's loaded or not? (e.g. so we can issue a warning) | |
scheduleSetBreakpoint({ fileName: fileName, lineNumber: lineNumber}); | |
state = 2; | |
} | |
} | |
function handleResponse(resp) { | |
if (state == 1) { | |
fileName = resp.result.fileName; | |
if (fileName.length == 0) | |
fileName = "<anonymous script, id=" + scriptId + ">"; | |
scheduleSetBreakpoint({ scriptId: scriptId, lineNumber: lineNumber}); | |
state = 2; | |
} else if (state == 2) { | |
if (resp.error == 0) { | |
var id = resp.result; | |
message("Breakpoint " + id + ": " + fileName + ", line " + lineNumber + "."); | |
} | |
} | |
} |