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

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

Issue 4343003: Version 2.5.4 (Closed)
Patch Set: Created 10 years, 1 month 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
« no previous file with comments | « src/compiler.cc ('k') | src/full-codegen.cc » ('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 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 }; 890 };
891 891
892 ExecutionState.prototype.frame = function(opt_index) { 892 ExecutionState.prototype.frame = function(opt_index) {
893 // If no index supplied return the selected frame. 893 // If no index supplied return the selected frame.
894 if (opt_index == null) opt_index = this.selected_frame; 894 if (opt_index == null) opt_index = this.selected_frame;
895 if (opt_index < 0 || opt_index >= this.frameCount()) 895 if (opt_index < 0 || opt_index >= this.frameCount())
896 throw new Error('Illegal frame index.'); 896 throw new Error('Illegal frame index.');
897 return new FrameMirror(this.break_id, opt_index); 897 return new FrameMirror(this.break_id, opt_index);
898 }; 898 };
899 899
900 ExecutionState.prototype.cframesValue = function(opt_from_index, opt_to_index) {
901 return %GetCFrames(this.break_id);
902 };
903
904 ExecutionState.prototype.setSelectedFrame = function(index) { 900 ExecutionState.prototype.setSelectedFrame = function(index) {
905 var i = %ToNumber(index); 901 var i = %ToNumber(index);
906 if (i < 0 || i >= this.frameCount()) throw new Error('Illegal frame index.'); 902 if (i < 0 || i >= this.frameCount()) throw new Error('Illegal frame index.');
907 this.selected_frame = i; 903 this.selected_frame = i;
908 }; 904 };
909 905
910 ExecutionState.prototype.selectedFrame = function() { 906 ExecutionState.prototype.selectedFrame = function() {
911 return this.selected_frame; 907 return this.selected_frame;
912 }; 908 };
913 909
(...skipping 830 matching lines...) Expand 10 before | Expand all | Expand 10 after
1744 } 1740 }
1745 response.body = { 1741 response.body = {
1746 fromFrame: from_index, 1742 fromFrame: from_index,
1747 toFrame: to_index, 1743 toFrame: to_index,
1748 totalFrames: total_frames, 1744 totalFrames: total_frames,
1749 frames: frames 1745 frames: frames
1750 } 1746 }
1751 }; 1747 };
1752 1748
1753 1749
1754 DebugCommandProcessor.prototype.backtracec = function(cmd, args) {
1755 return this.exec_state_.cframesValue();
1756 };
1757
1758
1759 DebugCommandProcessor.prototype.frameRequest_ = function(request, response) { 1750 DebugCommandProcessor.prototype.frameRequest_ = function(request, response) {
1760 // No frames no source. 1751 // No frames no source.
1761 if (this.exec_state_.frameCount() == 0) { 1752 if (this.exec_state_.frameCount() == 0) {
1762 return response.failed('No frames'); 1753 return response.failed('No frames');
1763 } 1754 }
1764 1755
1765 // With no arguments just keep the selected frame. 1756 // With no arguments just keep the selected frame.
1766 if (request.arguments) { 1757 if (request.arguments) {
1767 var index = request.arguments.number; 1758 var index = request.arguments.number;
1768 if (index < 0 || this.exec_state_.frameCount() <= index) { 1759 if (index < 0 || this.exec_state_.frameCount() <= index) {
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
2198 function NumberToHex8Str(n) { 2189 function NumberToHex8Str(n) {
2199 var r = ""; 2190 var r = "";
2200 for (var i = 0; i < 8; ++i) { 2191 for (var i = 0; i < 8; ++i) {
2201 var c = hexCharArray[n & 0x0F]; // hexCharArray is defined in uri.js 2192 var c = hexCharArray[n & 0x0F]; // hexCharArray is defined in uri.js
2202 r = c + r; 2193 r = c + r;
2203 n = n >>> 4; 2194 n = n >>> 4;
2204 } 2195 }
2205 return r; 2196 return r;
2206 }; 2197 };
2207 2198
2208 DebugCommandProcessor.prototype.formatCFrames = function(cframes_value) {
2209 var result = "";
2210 if (cframes_value == null || cframes_value.length == 0) {
2211 result += "(stack empty)";
2212 } else {
2213 for (var i = 0; i < cframes_value.length; ++i) {
2214 if (i != 0) result += "\n";
2215 result += this.formatCFrame(cframes_value[i]);
2216 }
2217 }
2218 return result;
2219 };
2220
2221
2222 DebugCommandProcessor.prototype.formatCFrame = function(cframe_value) {
2223 var result = "";
2224 result += "0x" + NumberToHex8Str(cframe_value.address);
2225 if (!IS_UNDEFINED(cframe_value.text)) {
2226 result += " " + cframe_value.text;
2227 }
2228 return result;
2229 }
2230
2231 2199
2232 /** 2200 /**
2233 * Convert an Object to its debugger protocol representation. The representation 2201 * Convert an Object to its debugger protocol representation. The representation
2234 * may be serilized to a JSON object using JSON.stringify(). 2202 * may be serilized to a JSON object using JSON.stringify().
2235 * This implementation simply runs through all string property names, converts 2203 * This implementation simply runs through all string property names, converts
2236 * each property value to a protocol value and adds the property to the result 2204 * each property value to a protocol value and adds the property to the result
2237 * object. For type "object" the function will be called recursively. Note that 2205 * object. For type "object" the function will be called recursively. Note that
2238 * circular structures will cause infinite recursion. 2206 * circular structures will cause infinite recursion.
2239 * @param {Object} object The object to format as protocol object. 2207 * @param {Object} object The object to format as protocol object.
2240 * @param {MirrorSerializer} mirror_serializer The serializer to use if any 2208 * @param {MirrorSerializer} mirror_serializer The serializer to use if any
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2302 case 'string': 2270 case 'string':
2303 case 'number': 2271 case 'number':
2304 json = value; 2272 json = value;
2305 break 2273 break
2306 2274
2307 default: 2275 default:
2308 json = null; 2276 json = null;
2309 } 2277 }
2310 return json; 2278 return json;
2311 } 2279 }
OLDNEW
« no previous file with comments | « src/compiler.cc ('k') | src/full-codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698