1 | name = "break";
|
---|
2 |
|
---|
3 | group = "breakpoints";
|
---|
4 |
|
---|
5 | shortDescription = "Set a breakpoint at specified location";
|
---|
6 |
|
---|
7 | longDescription = "break <file>:<line> : Sets a breakpoint at the given location.";
|
---|
8 | longDescription += "\nbreak <line> : Sets a breakpoint at the given line of the current file.";
|
---|
9 |
|
---|
10 | argumentTypes = [ "script-filename" ];
|
---|
11 |
|
---|
12 | aliases = [ "b" ];
|
---|
13 |
|
---|
14 | seeAlso = [ "condition", "delete", "disable", "tbreak" ];
|
---|
15 |
|
---|
16 | function execute() {
|
---|
17 | if (arguments.length == 0) {
|
---|
18 | message("Missing argument.");
|
---|
19 | return;
|
---|
20 | }
|
---|
21 | var arg = arguments[0];
|
---|
22 | var colonIndex = arg.lastIndexOf(':');
|
---|
23 | if (colonIndex == -1) {
|
---|
24 | lineNumber = parseInt(arg);
|
---|
25 | if (isNaN(lineNumber)) {
|
---|
26 | message("Breakpoint location must be of the form <file>:<line> or <line>.");
|
---|
27 | return;
|
---|
28 | }
|
---|
29 | var sid = getCurrentScriptId();
|
---|
30 | if (sid == -1) {
|
---|
31 | message("No script.");
|
---|
32 | return;
|
---|
33 | }
|
---|
34 | scheduleGetScriptData(sid);
|
---|
35 | scriptId = sid;
|
---|
36 | state = 1;
|
---|
37 | } else {
|
---|
38 | fileName = arg.slice(0, colonIndex);
|
---|
39 | lineNumber = parseInt(arg.slice(colonIndex+1));
|
---|
40 | // ### resolve the script to see if it's loaded or not? (e.g. so we can issue a warning)
|
---|
41 | scheduleSetBreakpoint({ fileName: fileName, lineNumber: lineNumber});
|
---|
42 | state = 2;
|
---|
43 | }
|
---|
44 | }
|
---|
45 |
|
---|
46 | function handleResponse(resp) {
|
---|
47 | if (state == 1) {
|
---|
48 | fileName = resp.result.fileName;
|
---|
49 | if (fileName.length == 0)
|
---|
50 | fileName = "<anonymous script, id=" + scriptId + ">";
|
---|
51 | scheduleSetBreakpoint({ scriptId: scriptId, lineNumber: lineNumber});
|
---|
52 | state = 2;
|
---|
53 | } else if (state == 2) {
|
---|
54 | if (resp.error == 0) {
|
---|
55 | var id = resp.result;
|
---|
56 | message("Breakpoint " + id + ": " + fileName + ", line " + lineNumber + ".");
|
---|
57 | }
|
---|
58 | }
|
---|
59 | }
|
---|