name = "break"; group = "breakpoints"; shortDescription = "Set a breakpoint at specified location"; longDescription = "break : : Sets a breakpoint at the given location."; longDescription += "\nbreak : 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 : or ."); 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 = ""; 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 + "."); } } }