Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(473)

Side by Side Diff: src/debug-debugger.js

Issue 6351007: Adding debugger interface and runtime functions hooks for supporting... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/d8.js ('k') | src/runtime.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 getValue: function() { return Debug.isBreakOnUncaughtException(); }, 102 getValue: function() { return Debug.isBreakOnUncaughtException(); },
103 setValue: function(value) { 103 setValue: function(value) {
104 if (value) { 104 if (value) {
105 Debug.setBreakOnUncaughtException(); 105 Debug.setBreakOnUncaughtException();
106 } else { 106 } else {
107 Debug.clearBreakOnUncaughtException(); 107 Debug.clearBreakOnUncaughtException();
108 } 108 }
109 } 109 }
110 }, 110 },
111 }; 111 };
112 var lol_is_enabled = %HasLOLEnabled();
112 113
113 114
114 // Create a new break point object and add it to the list of break points. 115 // Create a new break point object and add it to the list of break points.
115 function MakeBreakPoint(source_position, opt_script_break_point) { 116 function MakeBreakPoint(source_position, opt_script_break_point) {
116 var break_point = new BreakPoint(source_position, opt_script_break_point); 117 var break_point = new BreakPoint(source_position, opt_script_break_point);
117 break_points.push(break_point); 118 break_points.push(break_point);
118 return break_point; 119 return break_point;
119 } 120 }
120 121
121 122
(...skipping 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after
1384 } else if (request.command == 'backtrace') { 1385 } else if (request.command == 'backtrace') {
1385 this.backtraceRequest_(request, response); 1386 this.backtraceRequest_(request, response);
1386 } else if (request.command == 'frame') { 1387 } else if (request.command == 'frame') {
1387 this.frameRequest_(request, response); 1388 this.frameRequest_(request, response);
1388 } else if (request.command == 'scopes') { 1389 } else if (request.command == 'scopes') {
1389 this.scopesRequest_(request, response); 1390 this.scopesRequest_(request, response);
1390 } else if (request.command == 'scope') { 1391 } else if (request.command == 'scope') {
1391 this.scopeRequest_(request, response); 1392 this.scopeRequest_(request, response);
1392 } else if (request.command == 'evaluate') { 1393 } else if (request.command == 'evaluate') {
1393 this.evaluateRequest_(request, response); 1394 this.evaluateRequest_(request, response);
1395 } else if (lol_is_enabled && request.command == 'getobj') {
1396 this.getobjRequest_(request, response);
1394 } else if (request.command == 'lookup') { 1397 } else if (request.command == 'lookup') {
1395 this.lookupRequest_(request, response); 1398 this.lookupRequest_(request, response);
1396 } else if (request.command == 'references') { 1399 } else if (request.command == 'references') {
1397 this.referencesRequest_(request, response); 1400 this.referencesRequest_(request, response);
1398 } else if (request.command == 'source') { 1401 } else if (request.command == 'source') {
1399 this.sourceRequest_(request, response); 1402 this.sourceRequest_(request, response);
1400 } else if (request.command == 'scripts') { 1403 } else if (request.command == 'scripts') {
1401 this.scriptsRequest_(request, response); 1404 this.scriptsRequest_(request, response);
1402 } else if (request.command == 'threads') { 1405 } else if (request.command == 'threads') {
1403 this.threadsRequest_(request, response); 1406 this.threadsRequest_(request, response);
1404 } else if (request.command == 'suspend') { 1407 } else if (request.command == 'suspend') {
1405 this.suspendRequest_(request, response); 1408 this.suspendRequest_(request, response);
1406 } else if (request.command == 'version') { 1409 } else if (request.command == 'version') {
1407 this.versionRequest_(request, response); 1410 this.versionRequest_(request, response);
1408 } else if (request.command == 'profile') { 1411 } else if (request.command == 'profile') {
1409 this.profileRequest_(request, response); 1412 this.profileRequest_(request, response);
1410 } else if (request.command == 'changelive') { 1413 } else if (request.command == 'changelive') {
1411 this.changeLiveRequest_(request, response); 1414 this.changeLiveRequest_(request, response);
1412 } else if (request.command == 'flags') { 1415 } else if (request.command == 'flags') {
1413 this.debuggerFlagsRequest_(request, response); 1416 this.debuggerFlagsRequest_(request, response);
1414 } else if (request.command == 'v8flags') { 1417 } else if (request.command == 'v8flags') {
1415 this.v8FlagsRequest_(request, response); 1418 this.v8FlagsRequest_(request, response);
1416 1419
1417 // GC tools: 1420 // GC tools:
1418 } else if (request.command == 'gc') { 1421 } else if (request.command == 'gc') {
1419 this.gcRequest_(request, response); 1422 this.gcRequest_(request, response);
1420 1423
1424 // LiveObjectList tools:
1425 } else if (lol_is_enabled && request.command == 'lol-capture') {
1426 this.lolCaptureRequest_(request, response);
1427 } else if (lol_is_enabled && request.command == 'lol-delete') {
1428 this.lolDeleteRequest_(request, response);
1429 } else if (lol_is_enabled && request.command == 'lol-diff') {
1430 this.lolDiffRequest_(request, response);
1431 } else if (lol_is_enabled && request.command == 'lol-getid') {
1432 this.lolGetIdRequest_(request, response);
1433 } else if (lol_is_enabled && request.command == 'lol-info') {
1434 this.lolInfoRequest_(request, response);
1435 } else if (lol_is_enabled && request.command == 'lol-reset') {
1436 this.lolResetRequest_(request, response);
1437 } else if (lol_is_enabled && request.command == 'lol-retainers') {
1438 this.lolRetainersRequest_(request, response);
1439 } else if (lol_is_enabled && request.command == 'lol-path') {
1440 this.lolPathRequest_(request, response);
1441 } else if (lol_is_enabled && request.command == 'lol-print') {
1442 this.lolPrintRequest_(request, response);
1443 } else if (lol_is_enabled && request.command == 'lol-stats') {
1444 this.lolStatsRequest_(request, response);
1445
1421 } else { 1446 } else {
1422 throw new Error('Unknown command "' + request.command + '" in request'); 1447 throw new Error('Unknown command "' + request.command + '" in request');
1423 } 1448 }
1424 } catch (e) { 1449 } catch (e) {
1425 // If there is no response object created one (without command). 1450 // If there is no response object created one (without command).
1426 if (!response) { 1451 if (!response) {
1427 response = this.createResponse(); 1452 response = this.createResponse();
1428 } 1453 }
1429 response.success = false; 1454 response.success = false;
1430 response.message = %ToString(e); 1455 response.message = %ToString(e);
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 return; 2029 return;
2005 } else { 2030 } else {
2006 // Evaluate in the selected frame. 2031 // Evaluate in the selected frame.
2007 response.body = this.exec_state_.frame().evaluate( 2032 response.body = this.exec_state_.frame().evaluate(
2008 expression, Boolean(disable_break), additional_context_object); 2033 expression, Boolean(disable_break), additional_context_object);
2009 return; 2034 return;
2010 } 2035 }
2011 }; 2036 };
2012 2037
2013 2038
2039 DebugCommandProcessor.prototype.getobjRequest_ = function(request, response) {
2040 if (!request.arguments) {
2041 return response.failed('Missing arguments');
2042 }
2043
2044 // Pull out arguments.
2045 var obj_id = request.arguments.obj_id;
2046
2047 // Check for legal arguments.
2048 if (IS_UNDEFINED(obj_id)) {
2049 return response.failed('Argument "obj_id" missing');
2050 }
2051
2052 // Dump the object.
2053 response.body = MakeMirror(%GetLOLObj(obj_id));
2054 };
2055
2056
2014 DebugCommandProcessor.prototype.lookupRequest_ = function(request, response) { 2057 DebugCommandProcessor.prototype.lookupRequest_ = function(request, response) {
2015 if (!request.arguments) { 2058 if (!request.arguments) {
2016 return response.failed('Missing arguments'); 2059 return response.failed('Missing arguments');
2017 } 2060 }
2018 2061
2019 // Pull out arguments. 2062 // Pull out arguments.
2020 var handles = request.arguments.handles; 2063 var handles = request.arguments.handles;
2021 2064
2022 // Check for legal arguments. 2065 // Check for legal arguments.
2023 if (IS_UNDEFINED(handles)) { 2066 if (IS_UNDEFINED(handles)) {
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
2334 if (!type) type = 'all'; 2377 if (!type) type = 'all';
2335 2378
2336 var before = %GetHeapUsage(); 2379 var before = %GetHeapUsage();
2337 %CollectGarbage(type); 2380 %CollectGarbage(type);
2338 var after = %GetHeapUsage(); 2381 var after = %GetHeapUsage();
2339 2382
2340 response.body = { "before": before, "after": after }; 2383 response.body = { "before": before, "after": after };
2341 }; 2384 };
2342 2385
2343 2386
2387 DebugCommandProcessor.prototype.lolCaptureRequest_ =
2388 function(request, response) {
2389 response.body = %CaptureLOL();
2390 };
2391
2392
2393 DebugCommandProcessor.prototype.lolDeleteRequest_ =
2394 function(request, response) {
2395 var id = request.arguments.id;
2396 var result = %DeleteLOL(id);
2397 if (result) {
2398 response.body = { id: id };
2399 } else {
2400 response.failed('Failed to delete: live object list ' + id + ' not found.');
2401 }
2402 };
2403
2404
2405 DebugCommandProcessor.prototype.lolDiffRequest_ = function(request, response) {
2406 var id1 = request.arguments.id1;
2407 var id2 = request.arguments.id2;
2408 var verbose = request.arguments.verbose;
2409 var filter = request.arguments.filter;
2410 if (verbose === true) {
2411 var start = request.arguments.start;
2412 var count = request.arguments.count;
2413 response.body = %DumpLOL(id1, id2, start, count, filter);
2414 } else {
2415 response.body = %SummarizeLOL(id1, id2, filter);
2416 }
2417 };
2418
2419
2420 DebugCommandProcessor.prototype.lolGetIdRequest_ = function(request, response) {
2421 var address = request.arguments.address;
2422 response.body = {};
2423 response.body.id = %GetLOLObjId(address);
2424 };
2425
2426
2427 DebugCommandProcessor.prototype.lolInfoRequest_ = function(request, response) {
2428 var start = request.arguments.start;
2429 var count = request.arguments.count;
2430 response.body = %InfoLOL(start, count);
2431 };
2432
2433
2434 DebugCommandProcessor.prototype.lolResetRequest_ = function(request, response) {
2435 %ResetLOL();
2436 };
2437
2438
2439 DebugCommandProcessor.prototype.lolRetainersRequest_ =
2440 function(request, response) {
2441 var id = request.arguments.id;
2442 var verbose = request.arguments.verbose;
2443 var start = request.arguments.start;
2444 var count = request.arguments.count;
2445 var filter = request.arguments.filter;
2446
2447 response.body = %GetLOLObjRetainers(id, Mirror.prototype, verbose,
2448 start, count, filter);
2449 };
2450
2451
2452 DebugCommandProcessor.prototype.lolPathRequest_ = function(request, response) {
2453 var id1 = request.arguments.id1;
2454 var id2 = request.arguments.id2;
2455 response.body = {};
2456 response.body.path = %GetLOLPath(id1, id2, Mirror.prototype);
2457 };
2458
2459
2460 DebugCommandProcessor.prototype.lolPrintRequest_ = function(request, response) {
2461 var id = request.arguments.id;
2462 response.body = {};
2463 response.body.dump = %PrintLOLObj(id);
2464 };
2344 2465
2345 2466
2346 // Check whether the previously processed command caused the VM to become 2467 // Check whether the previously processed command caused the VM to become
2347 // running. 2468 // running.
2348 DebugCommandProcessor.prototype.isRunning = function() { 2469 DebugCommandProcessor.prototype.isRunning = function() {
2349 return this.running_; 2470 return this.running_;
2350 } 2471 }
2351 2472
2352 2473
2353 DebugCommandProcessor.prototype.systemBreak = function(cmd, args) { 2474 DebugCommandProcessor.prototype.systemBreak = function(cmd, args) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
2439 case 'string': 2560 case 'string':
2440 case 'number': 2561 case 'number':
2441 json = value; 2562 json = value;
2442 break 2563 break
2443 2564
2444 default: 2565 default:
2445 json = null; 2566 json = null;
2446 } 2567 }
2447 return json; 2568 return json;
2448 } 2569 }
OLDNEW
« no previous file with comments | « src/d8.js ('k') | src/runtime.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698