mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Add feature commands for debugger python script (#1604)
JerryScript-DCO-1.0-Signed-off-by: Levente Orban orbanl@inf.u-szeged.hu
This commit is contained in:
parent
6254748081
commit
b996841a65
@ -15,14 +15,15 @@
|
||||
# limitations under the License.
|
||||
|
||||
from __future__ import print_function
|
||||
import socket
|
||||
import sys
|
||||
from cmd import Cmd
|
||||
from pprint import pprint # For the readable stack printing.
|
||||
import argparse
|
||||
import logging
|
||||
import re
|
||||
from cmd import Cmd
|
||||
from struct import *
|
||||
from pprint import pprint # For the readable stack printing.
|
||||
import select
|
||||
import socket
|
||||
import struct
|
||||
import sys
|
||||
|
||||
# Messages sent by the server to client.
|
||||
JERRY_DEBUGGER_CONFIGURATION = 1
|
||||
@ -138,9 +139,12 @@ class DebuggerPrompt(Cmd):
|
||||
Cmd.__init__(self)
|
||||
self.debugger = debugger
|
||||
self.stop = False
|
||||
self.quit = False
|
||||
self.cont = False
|
||||
|
||||
def precmd(self, line):
|
||||
self.stop = False
|
||||
self.cont = False
|
||||
return line
|
||||
|
||||
def postcmd(self, stop, line):
|
||||
@ -152,6 +156,13 @@ class DebuggerPrompt(Cmd):
|
||||
else:
|
||||
set_breakpoint(self.debugger, args)
|
||||
|
||||
def do_quit(self, args):
|
||||
""" Exit JerryScript debugger """
|
||||
self.do_delete("all")
|
||||
self.exec_command(args, JERRY_DEBUGGER_CONTINUE)
|
||||
self.stop = True
|
||||
self.quit = True
|
||||
|
||||
def do_break(self, args):
|
||||
""" Insert breakpoints on the given lines """
|
||||
self.insert_breakpoint(args)
|
||||
@ -170,10 +181,16 @@ class DebuggerPrompt(Cmd):
|
||||
def do_continue(self, args):
|
||||
""" Continue execution """
|
||||
self.exec_command(args, JERRY_DEBUGGER_CONTINUE)
|
||||
self.stop = True
|
||||
self.cont = True
|
||||
print("Press enter to stop JavaScript execution.")
|
||||
|
||||
def do_c(self, args):
|
||||
""" Continue execution """
|
||||
self.exec_command(args, JERRY_DEBUGGER_CONTINUE)
|
||||
self.stop = True
|
||||
self.cont = True
|
||||
print("Press enter to stop JavaScript execution.")
|
||||
|
||||
def do_step(self, args):
|
||||
""" Next breakpoint, step into functions """
|
||||
@ -202,11 +219,17 @@ class DebuggerPrompt(Cmd):
|
||||
print("%d: %s" % (breakpoint.active_index, breakpoint.to_string()))
|
||||
|
||||
def do_delete(self, args):
|
||||
""" Delete the given breakpoint """
|
||||
""" Delete the given breakpoint, use 'delete all' to clear the breakpoints in the whole program"""
|
||||
if not args:
|
||||
print("Error: Breakpoint index expected")
|
||||
return
|
||||
|
||||
elif args == "all":
|
||||
for i in self.debugger.active_breakpoint_list.values():
|
||||
breakpoint = self.debugger.active_breakpoint_list[i.active_index]
|
||||
del self.debugger.active_breakpoint_list[i.active_index]
|
||||
breakpoint.active_index = -1
|
||||
self.debugger.send_breakpoint(breakpoint)
|
||||
else:
|
||||
try:
|
||||
breakpoint_index = int(args)
|
||||
except:
|
||||
@ -234,7 +257,7 @@ class DebuggerPrompt(Cmd):
|
||||
print("Error: Positive integer number expected")
|
||||
return
|
||||
|
||||
message = pack(self.debugger.byte_order + "BBIB" + self.debugger.idx_format,
|
||||
message = struct.pack(self.debugger.byte_order + "BBIB" + self.debugger.idx_format,
|
||||
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
|
||||
WEBSOCKET_FIN_BIT + 1 + 4,
|
||||
0,
|
||||
@ -270,7 +293,7 @@ class DebuggerPrompt(Cmd):
|
||||
message_header = 1 + 4
|
||||
max_fragment = min(self.debugger.max_message_size - message_header, size)
|
||||
|
||||
message = pack(self.debugger.byte_order + "BBIBI",
|
||||
message = struct.pack(self.debugger.byte_order + "BBIBI",
|
||||
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
|
||||
WEBSOCKET_FIN_BIT + max_fragment + message_header,
|
||||
0,
|
||||
@ -292,7 +315,7 @@ class DebuggerPrompt(Cmd):
|
||||
while offset < size:
|
||||
next_fragment = min(max_fragment, size - offset)
|
||||
|
||||
message = pack(self.debugger.byte_order + "BBIB",
|
||||
message = struct.pack(self.debugger.byte_order + "BBIB",
|
||||
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
|
||||
WEBSOCKET_FIN_BIT + next_fragment + message_header,
|
||||
0,
|
||||
@ -401,7 +424,7 @@ class JerryDebugger(object):
|
||||
|
||||
len_result = len(result)
|
||||
|
||||
expected = pack("BBB",
|
||||
expected = struct.pack("BBB",
|
||||
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
|
||||
4,
|
||||
JERRY_DEBUGGER_CONFIGURATION)
|
||||
@ -444,7 +467,7 @@ class JerryDebugger(object):
|
||||
size -= bytes_send
|
||||
|
||||
def send_breakpoint(self, breakpoint):
|
||||
message = pack(self.byte_order + "BBIBB" + self.cp_format + self.idx_format,
|
||||
message = struct.pack(self.byte_order + "BBIBB" + self.cp_format + self.idx_format,
|
||||
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
|
||||
WEBSOCKET_FIN_BIT + 1 + 1 + self.cp_size + 4,
|
||||
0,
|
||||
@ -455,14 +478,15 @@ class JerryDebugger(object):
|
||||
self.send_message(message)
|
||||
|
||||
def send_command(self, command):
|
||||
message = pack(self.byte_order + "BBIB",
|
||||
message = struct.pack(self.byte_order + "BBIB",
|
||||
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
|
||||
WEBSOCKET_FIN_BIT + 1,
|
||||
0,
|
||||
command)
|
||||
self.send_message(message)
|
||||
|
||||
def get_message(self):
|
||||
def get_message(self, blocking):
|
||||
# Connection was closed
|
||||
if self.message_data is None:
|
||||
return None
|
||||
|
||||
@ -480,7 +504,13 @@ class JerryDebugger(object):
|
||||
self.message_data = self.message_data[size + 2:]
|
||||
return result
|
||||
|
||||
if not blocking:
|
||||
select_result = select.select([self.client_socket], [], [], 0)[0]
|
||||
if self.client_socket not in select_result:
|
||||
return b''
|
||||
|
||||
data = self.client_socket.recv(MAX_BUFFER_SIZE)
|
||||
|
||||
if not data:
|
||||
self.message_data = None
|
||||
return None
|
||||
@ -519,7 +549,7 @@ def parse_source(debugger, data):
|
||||
|
||||
elif buffer_type == JERRY_DEBUGGER_PARSE_FUNCTION:
|
||||
logging.debug("Source name: %s, function name: %s" % (source_code_name, function_name))
|
||||
stack.append({ "source": source_code,
|
||||
stack.append({"source": source_code,
|
||||
"source_name": source_code_name,
|
||||
"name": function_name,
|
||||
"lines": [],
|
||||
@ -535,14 +565,14 @@ def parse_source(debugger, data):
|
||||
|
||||
buffer_pos = 3
|
||||
while buffer_size > 0:
|
||||
line = unpack(debugger.byte_order + debugger.idx_format,
|
||||
line = struct.unpack(debugger.byte_order + debugger.idx_format,
|
||||
data[buffer_pos: buffer_pos + 4])
|
||||
stack[-1][name].append(line[0])
|
||||
buffer_pos += 4
|
||||
buffer_size -= 4
|
||||
|
||||
elif buffer_type == JERRY_DEBUGGER_BYTE_CODE_CP:
|
||||
byte_code_cp = unpack(debugger.byte_order + debugger.cp_format,
|
||||
byte_code_cp = struct.unpack(debugger.byte_order + debugger.cp_format,
|
||||
data[3: 3 + debugger.cp_size])[0]
|
||||
|
||||
logging.debug("Byte code cptr received: {0x%x}" % (byte_code_cp))
|
||||
@ -571,7 +601,7 @@ def parse_source(debugger, data):
|
||||
logging.error("Parser error!")
|
||||
return
|
||||
|
||||
data = debugger.get_message()
|
||||
data = debugger.get_message(True)
|
||||
|
||||
# Copy the ready list to the global storage.
|
||||
debugger.function_list.update(new_function_list)
|
||||
@ -582,7 +612,7 @@ def parse_source(debugger, data):
|
||||
|
||||
|
||||
def release_function(debugger, data):
|
||||
byte_code_cp = unpack(debugger.byte_order + debugger.cp_format,
|
||||
byte_code_cp = struct.unpack(debugger.byte_order + debugger.cp_format,
|
||||
data[3: 3 + debugger.cp_size])[0]
|
||||
|
||||
function = debugger.function_list[byte_code_cp]
|
||||
@ -594,7 +624,7 @@ def release_function(debugger, data):
|
||||
|
||||
del debugger.function_list[byte_code_cp]
|
||||
|
||||
message = pack(debugger.byte_order + "BBIB" + debugger.cp_format,
|
||||
message = struct.pack(debugger.byte_order + "BBIB" + debugger.cp_format,
|
||||
WEBSOCKET_BINARY_FRAME | WEBSOCKET_FIN_BIT,
|
||||
WEBSOCKET_FIN_BIT + 1 + debugger.cp_size,
|
||||
0,
|
||||
@ -660,8 +690,16 @@ def main():
|
||||
prompt.prompt = "(jerry-debugger) "
|
||||
|
||||
while True:
|
||||
if prompt.cont:
|
||||
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
|
||||
sys.stdin.readline()
|
||||
prompt.cont = False
|
||||
debugger.send_command(JERRY_DEBUGGER_STOP)
|
||||
|
||||
data = debugger.get_message()
|
||||
data = debugger.get_message(False)
|
||||
|
||||
if data == b'':
|
||||
continue
|
||||
|
||||
if not data: # Break the while loop if there is no more data.
|
||||
break
|
||||
@ -687,7 +725,7 @@ def main():
|
||||
release_function(debugger, data)
|
||||
|
||||
elif buffer_type == JERRY_DEBUGGER_BREAKPOINT_HIT:
|
||||
breakpoint_data = unpack(debugger.byte_order + debugger.cp_format + debugger.idx_format, data[3:])
|
||||
breakpoint_data = struct.unpack(debugger.byte_order + debugger.cp_format + debugger.idx_format, data[3:])
|
||||
|
||||
function = debugger.function_list[breakpoint_data[0]]
|
||||
breakpoint = function.offsets[breakpoint_data[1]]
|
||||
@ -701,6 +739,8 @@ def main():
|
||||
print("Stopped at%s %s" % (breakpoint_index, breakpoint.to_string()))
|
||||
|
||||
prompt.cmdloop()
|
||||
if prompt.quit:
|
||||
break
|
||||
|
||||
elif buffer_type in [JERRY_DEBUGGER_BACKTRACE, JERRY_DEBUGGER_BACKTRACE_END]:
|
||||
frame_index = 0
|
||||
@ -709,7 +749,7 @@ def main():
|
||||
|
||||
buffer_pos = 3
|
||||
while buffer_size > 0:
|
||||
breakpoint_data = unpack(debugger.byte_order + debugger.cp_format + debugger.idx_format,
|
||||
breakpoint_data = struct.unpack(debugger.byte_order + debugger.cp_format + debugger.idx_format,
|
||||
data[buffer_pos: buffer_pos + debugger.cp_size + 4])
|
||||
|
||||
function = debugger.function_list[breakpoint_data[0]]
|
||||
@ -734,7 +774,7 @@ def main():
|
||||
if buffer_type == JERRY_DEBUGGER_BACKTRACE_END:
|
||||
break
|
||||
|
||||
data = debugger.get_message()
|
||||
data = debugger.get_message(True)
|
||||
buffer_type = ord(data[2])
|
||||
buffer_size = ord(data[1]) - 1
|
||||
|
||||
@ -758,7 +798,7 @@ def main():
|
||||
JERRY_DEBUGGER_EVAL_ERROR_END]:
|
||||
break
|
||||
|
||||
data = debugger.get_message()
|
||||
data = debugger.get_message(True)
|
||||
buffer_type = ord(data[2])
|
||||
buffer_size = ord(data[1]) - 1
|
||||
|
||||
@ -790,7 +830,7 @@ if __name__ == "__main__":
|
||||
|
||||
if errno == 111:
|
||||
sys.exit("Failed to connect to the JerryScript debugger.")
|
||||
elif errno == 32:
|
||||
elif errno == 32 or errno == 104:
|
||||
sys.exit("Connection closed.")
|
||||
else:
|
||||
sys.exit("Failed to connect to the JerryScript debugger.\nError: %s" % (msg))
|
||||
|
||||
@ -1,4 +1,9 @@
|
||||
b do_backtrace.js:32
|
||||
c
|
||||
next
|
||||
n
|
||||
next
|
||||
step
|
||||
next
|
||||
n
|
||||
s
|
||||
bt
|
||||
c
|
||||
|
||||
@ -1,9 +1,14 @@
|
||||
Connecting to: localhost:5001
|
||||
Stopped at tests/debugger/do_backtrace.js:15
|
||||
(jerry-debugger) Breakpoint 1 at tests/debugger/do_backtrace.js:32 (in f4)
|
||||
(jerry-debugger) Stopped at breakpoint:1 tests/debugger/do_backtrace.js:32 (in f4)
|
||||
(jerry-debugger) Frame 0: tests/debugger/do_backtrace.js:32 (in f4)
|
||||
Frame 1: tests/debugger/do_backtrace.js:39 (in foo)
|
||||
Frame 2: tests/debugger/do_backtrace.js:48 (in test)
|
||||
Frame 3: tests/debugger/do_backtrace.js:60
|
||||
(jerry-debugger) Connection closed.
|
||||
(jerry-debugger) Stopped at tests/debugger/do_backtrace.js:28
|
||||
(jerry-debugger) Stopped at tests/debugger/do_backtrace.js:37
|
||||
(jerry-debugger) Stopped at tests/debugger/do_backtrace.js:40
|
||||
(jerry-debugger) Stopped at tests/debugger/do_backtrace.js:30 (in test)
|
||||
(jerry-debugger) Stopped at tests/debugger/do_backtrace.js:32 (in test)
|
||||
(jerry-debugger) Stopped at tests/debugger/do_backtrace.js:33 (in test)
|
||||
(jerry-debugger) Stopped at tests/debugger/do_backtrace.js:21 (in foo)
|
||||
(jerry-debugger) Frame 0: tests/debugger/do_backtrace.js:21 (in foo)
|
||||
Frame 1: tests/debugger/do_backtrace.js:33 (in test)
|
||||
Frame 2: tests/debugger/do_backtrace.js:40
|
||||
(jerry-debugger) Press enter to stop JavaScript execution.
|
||||
Connection closed.
|
||||
|
||||
@ -12,21 +12,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
print("first line of code");
|
||||
|
||||
function f1()
|
||||
{
|
||||
function f2()
|
||||
{
|
||||
return function f3() {
|
||||
a = 4;
|
||||
print("funciton f3");
|
||||
};
|
||||
}
|
||||
|
||||
x =
|
||||
6;
|
||||
}
|
||||
print("backtrace-test");
|
||||
|
||||
function f4() {
|
||||
print("function f4");
|
||||
@ -39,18 +25,12 @@ function foo()
|
||||
f4();
|
||||
}
|
||||
|
||||
print ("var cat");
|
||||
var cat = 'cat';
|
||||
|
||||
function test()
|
||||
{
|
||||
print("function test");
|
||||
foo();
|
||||
var a = 3;
|
||||
var b = 5;
|
||||
var c = a + b;
|
||||
global_var = c;
|
||||
return c;
|
||||
}
|
||||
|
||||
var
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
break do_break.js:28
|
||||
break do_break.js:24
|
||||
b do_break.js:27
|
||||
b do_break.js:17
|
||||
list
|
||||
b do_break.js:40
|
||||
delete 1
|
||||
delete 2
|
||||
next
|
||||
next
|
||||
continue
|
||||
c
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
Connecting to: localhost:5001
|
||||
Stopped at tests/debugger/do_break.js:15
|
||||
(jerry-debugger) Breakpoint not found
|
||||
(jerry-debugger) (jerry-debugger) Breakpoint not found
|
||||
(jerry-debugger) Error: Breakpoint 1 not found
|
||||
(jerry-debugger) Stopped at tests/debugger/do_break.js:42
|
||||
(jerry-debugger) Stopped at tests/debugger/do_break.js:43
|
||||
(jerry-debugger) Connection closed.
|
||||
(jerry-debugger) Breakpoint 1 at tests/debugger/do_break.js:24 (in test)
|
||||
(jerry-debugger) Breakpoint 2 at tests/debugger/do_break.js:27 (in test)
|
||||
(jerry-debugger) Breakpoint 3 at tests/debugger/do_break.js:17
|
||||
(jerry-debugger) 1: tests/debugger/do_break.js:24 (in test)
|
||||
2: tests/debugger/do_break.js:27 (in test)
|
||||
3: tests/debugger/do_break.js:17
|
||||
(jerry-debugger) (jerry-debugger) Stopped at breakpoint:3 tests/debugger/do_break.js:17
|
||||
(jerry-debugger) Press enter to stop JavaScript execution.
|
||||
Connection closed.
|
||||
|
||||
@ -12,32 +12,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
print("first line of code");
|
||||
|
||||
function f1()
|
||||
{
|
||||
function f2()
|
||||
{
|
||||
return function f3() {
|
||||
a = 4;
|
||||
print("funciton f3");
|
||||
};
|
||||
}
|
||||
|
||||
x =
|
||||
6;
|
||||
}
|
||||
|
||||
function f4() {
|
||||
print("function f4");
|
||||
}
|
||||
|
||||
function foo()
|
||||
{
|
||||
print("function foo");
|
||||
var tmp = 4;
|
||||
f4();
|
||||
}
|
||||
print("break test");
|
||||
|
||||
print ("var cat");
|
||||
var cat = 'cat';
|
||||
@ -56,5 +31,3 @@ function test()
|
||||
var
|
||||
x =
|
||||
1;
|
||||
|
||||
test();
|
||||
|
||||
7
tests/debugger/do_delete_all.cmd
Normal file
7
tests/debugger/do_delete_all.cmd
Normal file
@ -0,0 +1,7 @@
|
||||
break do_delete_all.js:17
|
||||
b do_delete_all.js:18
|
||||
b do_delete_all.js:21
|
||||
list
|
||||
delete all
|
||||
next
|
||||
c
|
||||
11
tests/debugger/do_delete_all.expected
Normal file
11
tests/debugger/do_delete_all.expected
Normal file
@ -0,0 +1,11 @@
|
||||
Connecting to: localhost:5001
|
||||
Stopped at tests/debugger/do_delete_all.js:15
|
||||
(jerry-debugger) Breakpoint 1 at tests/debugger/do_delete_all.js:17
|
||||
(jerry-debugger) Breakpoint 2 at tests/debugger/do_delete_all.js:18
|
||||
(jerry-debugger) Breakpoint 3 at tests/debugger/do_delete_all.js:21 (in delete_test)
|
||||
(jerry-debugger) 1: tests/debugger/do_delete_all.js:17
|
||||
2: tests/debugger/do_delete_all.js:18
|
||||
3: tests/debugger/do_delete_all.js:21 (in delete_test)
|
||||
(jerry-debugger) (jerry-debugger) Stopped at tests/debugger/do_delete_all.js:16
|
||||
(jerry-debugger) Press enter to stop JavaScript execution.
|
||||
Connection closed.
|
||||
22
tests/debugger/do_delete_all.js
Normal file
22
tests/debugger/do_delete_all.js
Normal file
@ -0,0 +1,22 @@
|
||||
// Copyright JS Foundation and other contributors, http://js.foundation
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
var str = "Delete all breakpoints";
|
||||
var patt = new RegExp("e");
|
||||
var res = patt.test(str);
|
||||
var pi = Math.PI;
|
||||
|
||||
function delete_test(x,y) {
|
||||
var sum = x + y;
|
||||
}
|
||||
@ -1,2 +1,3 @@
|
||||
step
|
||||
dump
|
||||
c
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
Connecting to: localhost:5001
|
||||
Stopped at tests/debugger/do_dump.js:15
|
||||
(jerry-debugger) Stopped at tests/debugger/do_dump.js:42
|
||||
(jerry-debugger) {68: Function(byte_code_cp:0x44, source_name:"tests/debugger/do_dump.js", name:"f4", { Breakpoint(line:32, offset:17, active_index:-1),Breakpoint(line:31, offset:16, active_index:-1) }),
|
||||
79: Function(byte_code_cp:0x4f, source_name:"tests/debugger/do_dump.js", name:"f1", { Breakpoint(line:17, offset:21, active_index:-1),Breakpoint(line:27, offset:22, active_index:-1) }),
|
||||
102: Function(byte_code_cp:0x66, source_name:"tests/debugger/do_dump.js", name:"f2", { Breakpoint(line:19, offset:14, active_index:-1),Breakpoint(line:21, offset:15, active_index:-1) }),
|
||||
@ -7,4 +8,5 @@ Stopped at tests/debugger/do_dump.js:15
|
||||
125: Function(byte_code_cp:0x7d, source_name:"tests/debugger/do_dump.js", name:"f3", { Breakpoint(line:22, offset:25, active_index:-1),Breakpoint(line:23, offset:30, active_index:-1) }),
|
||||
131: Function(byte_code_cp:0x83, source_name:"tests/debugger/do_dump.js", name:"", { Breakpoint(line:57, offset:63, active_index:-1),Breakpoint(line:42, offset:54, active_index:-1),Breakpoint(line:43, offset:59, active_index:-1),Breakpoint(line:60, offset:68, active_index:-1),Breakpoint(line:15, offset:49, active_index:-1) }),
|
||||
154: Function(byte_code_cp:0x9a, source_name:"tests/debugger/do_dump.js", name:"test", { Breakpoint(line:45, offset:28, active_index:-1),Breakpoint(line:47, offset:29, active_index:-1),Breakpoint(line:48, offset:34, active_index:-1),Breakpoint(line:49, offset:38, active_index:-1),Breakpoint(line:50, offset:43, active_index:-1),Breakpoint(line:51, offset:48, active_index:-1),Breakpoint(line:52, offset:54, active_index:-1),Breakpoint(line:53, offset:58, active_index:-1) })}
|
||||
(jerry-debugger) Connection closed.
|
||||
(jerry-debugger) Press enter to stop JavaScript execution.
|
||||
Connection closed.
|
||||
|
||||
@ -2,11 +2,10 @@ e a
|
||||
n
|
||||
eval a
|
||||
break f
|
||||
c
|
||||
e a
|
||||
n
|
||||
e b
|
||||
n
|
||||
next
|
||||
e b
|
||||
e "1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 XXX 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 YYY 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 ZZZ " + 123
|
||||
next
|
||||
c
|
||||
|
||||
@ -5,10 +5,10 @@ Stopped at tests/debugger/do_eval.js:15
|
||||
(jerry-debugger) 5
|
||||
(jerry-debugger) Breakpoint 1 at tests/debugger/do_eval.js:17 (in f)
|
||||
(jerry-debugger) Stopped at breakpoint:1 tests/debugger/do_eval.js:17 (in f)
|
||||
(jerry-debugger) 3.3
|
||||
(jerry-debugger) undefined
|
||||
(jerry-debugger) Stopped at tests/debugger/do_eval.js:19 (in f)
|
||||
(jerry-debugger) undefined
|
||||
(jerry-debugger) Stopped at tests/debugger/do_eval.js:20 (in f)
|
||||
(jerry-debugger) 6
|
||||
(jerry-debugger) 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 XXX 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 YYY 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 ZZZ 123
|
||||
(jerry-debugger) Connection closed.
|
||||
(jerry-debugger) Stopped at tests/debugger/do_eval.js:20 (in f)
|
||||
(jerry-debugger) Press enter to stop JavaScript execution.
|
||||
Connection closed.
|
||||
|
||||
@ -1,13 +1,10 @@
|
||||
b f
|
||||
n
|
||||
n
|
||||
next
|
||||
n
|
||||
s
|
||||
src
|
||||
n
|
||||
b f
|
||||
c
|
||||
src
|
||||
c
|
||||
step
|
||||
src
|
||||
c
|
||||
|
||||
@ -8,12 +8,8 @@ Stopped at tests/debugger/do_src.js:19
|
||||
(jerry-debugger) f = function f() {
|
||||
print('F2') }
|
||||
(jerry-debugger) Stopped at tests/debugger/do_src.js:21
|
||||
(jerry-debugger) Breakpoint 2 at <unknown>:2 (in f)
|
||||
Breakpoint 1 at tests/debugger/do_src.js:15 (in f)
|
||||
(jerry-debugger) Stopped at breakpoint:2 <unknown>:2 (in f)
|
||||
(jerry-debugger) Stopped at <unknown>:2 (in f)
|
||||
(jerry-debugger) f = function f() {
|
||||
print('F2') }
|
||||
(jerry-debugger) Stopped at breakpoint:2 <unknown>:2 (in f)
|
||||
(jerry-debugger) f = function f() {
|
||||
print('F2') }
|
||||
(jerry-debugger) Connection closed.
|
||||
(jerry-debugger) Press enter to stop JavaScript execution.
|
||||
Connection closed.
|
||||
|
||||
@ -2,7 +2,7 @@ break do_step.js:25
|
||||
step
|
||||
backtrace
|
||||
b do_step.js:26
|
||||
c
|
||||
s
|
||||
next
|
||||
next
|
||||
bt
|
||||
c
|
||||
|
||||
@ -5,8 +5,8 @@ Stopped at tests/debugger/do_step.js:25
|
||||
(jerry-debugger) Frame 0: tests/debugger/do_step.js:15 (in f1)
|
||||
Frame 1: tests/debugger/do_step.js:25
|
||||
(jerry-debugger) Breakpoint 2 at tests/debugger/do_step.js:26
|
||||
(jerry-debugger) Stopped at tests/debugger/do_step.js:17 (in f1)
|
||||
(jerry-debugger) Stopped at breakpoint:2 tests/debugger/do_step.js:26
|
||||
(jerry-debugger) Stopped at tests/debugger/do_step.js:20 (in f2)
|
||||
(jerry-debugger) Frame 0: tests/debugger/do_step.js:20 (in f2)
|
||||
Frame 1: tests/debugger/do_step.js:26
|
||||
(jerry-debugger) Connection closed.
|
||||
(jerry-debugger) Frame 0: tests/debugger/do_step.js:26
|
||||
(jerry-debugger) Press enter to stop JavaScript execution.
|
||||
Connection closed.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user