Mercurial > spidermonkey-playground
annotate memory_profiler_server.js @ 77:8cf72992387d default tip
add JSONP
author | Dion Almaer <dion@mozilla.com> |
---|---|
date | Fri, 26 Jun 2009 10:13:32 -0700 |
parents | b87b6ebb6e86 |
children |
rev | line source |
---|---|
73
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
1 // This function is called by the platform whenever an uncaught exception |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
2 // occurs. |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
3 |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
4 function handleError() { |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
5 printTraceback(lastExceptionTraceback); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
6 print(lastException); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
7 } |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
8 |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
9 // This function uses the Python-inspired traceback functionality of the |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
10 // playground to print a stack trace that looks much like Python's. |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
11 |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
12 function printTraceback(frame) { |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
13 print("Traceback (most recent call last):"); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
14 if (frame === undefined) |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
15 frame = stack(); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
16 var lines = []; |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
17 while (frame) { |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
18 var line = (' File "' + frame.filename + '", line ' + |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
19 frame.lineNo + ', in ' + frame.functionName); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
20 lines.splice(0, 0, line); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
21 frame = frame.caller; |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
22 } |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
23 print(lines.join('\n')); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
24 } |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
25 |
77 | 26 function debug(out) { |
27 print("DEBUG: " + out); | |
28 } | |
29 | |
30 // Work out if the caller wants the output to be wrapped in a JSONP function wrapper | |
31 function wrapJSONP(path, json) { | |
32 var callbackName = path.match(/callback=(\w+)/); | |
33 if (callbackName) { | |
34 return callbackName[1] + "(" + json + ")"; | |
35 } else { | |
36 return json; | |
37 } | |
38 } | |
39 | |
63
4910bc49a182
set GC Zeal to 2 and fixed some bugs exposed by it.
Atul Varma <varmaa@toolness.com>
parents:
54
diff
changeset
|
40 // This is just a test to exercise the code a bit. |
4910bc49a182
set GC Zeal to 2 and fixed some bugs exposed by it.
Atul Varma <varmaa@toolness.com>
parents:
54
diff
changeset
|
41 JSON.stringify(getObjectInfo(getGCRoots()[0])); |
4910bc49a182
set GC Zeal to 2 and fixed some bugs exposed by it.
Atul Varma <varmaa@toolness.com>
parents:
54
diff
changeset
|
42 |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
43 var socket = new ServerSocket(); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
44 |
67
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
45 var IP = "127.0.0.1"; |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
46 var PORT = 8080; |
67
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
47 var BASE_URL = "http://" + IP + ":" + PORT; |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
48 var HELP = [ |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
49 "REST API methods available:", |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
50 "", |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
51 " /gc-roots JSON array of GC root object IDs.", |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
52 " /objects/{ID} JSON metadata about the given object ID.", |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
53 " /stop Stops the server."]; |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
54 |
67
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
55 HELP = HELP.join("\r\n"); |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
56 |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
57 socket.bind(IP, PORT); |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
58 socket.listen(); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
59 |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
60 var NEWLINE = "\r\n"; |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
61 var DOUBLE_NEWLINE = NEWLINE + NEWLINE; |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
62 |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
63 function getHeaders(conn) { |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
64 var headers = ""; |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
65 while (1) { |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
66 var character = conn.recv(1); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
67 if (character == null) |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
68 return null; |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
69 headers += character; |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
70 if (headers.indexOf(DOUBLE_NEWLINE) != -1) |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
71 return headers; |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
72 } |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
73 } |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
74 |
67
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
75 print("Waiting for requests at " + BASE_URL + ".\n"); |
a98e6a1144a9
Added some basic help info to the memory profiling server.
Atul Varma <varmaa@toolness.com>
parents:
63
diff
changeset
|
76 print(HELP); |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
77 |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
78 function processRequest(socket) { |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
79 var conn = socket.accept(); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
80 |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
81 try { |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
82 var requestHeaders = getHeaders(conn); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
83 if (requestHeaders == null) |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
84 return true; |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
85 var requestLines = requestHeaders.split("\r\n"); |
77 | 86 debug("Request: " + requestLines[0]); |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
87 var reqParts = requestLines[0].split(" "); |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
88 var method = reqParts[0]; |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
89 var path = reqParts[1]; |
77 | 90 debug("Path: " + path); |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
91 |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
92 var code = "200 OK"; |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
93 var toSend; |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
94 |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
95 // TODO: We'd like to set the MIME type of JSON data to application/json, |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
96 // but Firefox doesn't let us browse a webserver this way, which is |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
97 // annoying, so we're just leaving it at text/plain for now. |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
98 |
77 | 99 if (path == "/") { |
100 toSend = HELP; | |
101 } else if (path.indexOf("/stop") == 0) { | |
102 toSend = "Stopping server now!"; | |
103 } else { | |
104 if (path.indexOf("/gc-roots") == 0) { | |
105 toSend = JSON.stringify(getGCRoots()); | |
106 } else { | |
107 var objNum = path.match(/^\/objects\/(\d+)/); | |
108 if (objNum) { | |
109 //throw new Error('wut'); | |
110 objNum = objNum[1]; | |
111 debug(objNum); | |
112 var objInfo = getObjectInfo(objNum); | |
113 if (objInfo) { | |
114 toSend = JSON.stringify(objInfo); | |
115 } else { | |
116 code = "404 Not Found"; | |
117 toSend = "Object " + objNum + " does not exist."; | |
118 } | |
119 } | |
120 } | |
53
2b22291fa09a
added a stub for an /objects/(number) RESTful API method.
Atul Varma <varmaa@toolness.com>
parents:
52
diff
changeset
|
121 } |
2b22291fa09a
added a stub for an /objects/(number) RESTful API method.
Atul Varma <varmaa@toolness.com>
parents:
52
diff
changeset
|
122 |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
123 if (!toSend) { |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
124 code = "404 Not Found"; |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
125 toSend = "Not found, yo."; |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
126 } |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
127 |
77 | 128 // maybe wrap the response in JSONP |
129 toSend = wrapJSONP(path, toSend); | |
130 debug("toSend == " + toSend); | |
131 | |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
132 //print("headers: " + uneval(requestHeaders)); |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
133 var headerLines = ["HTTP/1.0 " + code, |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
134 "Content-Type: text/plain", |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
135 "Connection: close", |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
136 "Content-Length: " + toSend.length]; |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
137 var headers = headerLines.join("\r\n"); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
138 var response = headers + DOUBLE_NEWLINE + toSend; |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
139 //print("response: " + uneval(response)); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
140 conn.send(response); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
141 conn.close(); |
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
142 //print("response sent."); |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
143 } catch (e) { |
73
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
144 handleError(); |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
145 try { conn.close(); } catch (e) {} |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
146 } |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
147 if (path == "/stop") |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
148 return false; |
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
149 return true; |
50
853f80bd3b4b
Added tentative profileMemory() server, which suspends the current JS runtime, creates a new one and runs a web server in it.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
150 } |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
151 |
73
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
152 var keepGoing = true; |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
153 |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
154 while (keepGoing) { |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
155 try { |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
156 keepGoing = processRequest(socket); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
157 } catch (e) { |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
158 handleError(); |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
159 } |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
160 } |
b87b6ebb6e86
Memory profiler server is now much better at reporting errors.
Atul Varma <varmaa@toolness.com>
parents:
67
diff
changeset
|
161 |
52
a10cb805b5ab
Added RESTful methods for memory tracking.
Atul Varma <varmaa@toolness.com>
parents:
51
diff
changeset
|
162 socket.close(); |