| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "include/dart_debugger_api.h" | 5 #include "include/dart_debugger_api.h" | 
| 6 #include "include/dart_mirrors_api.h" | 6 #include "include/dart_mirrors_api.h" | 
| 7 #include "platform/assert.h" | 7 #include "platform/assert.h" | 
| 8 #include "vm/dart_api_impl.h" | 8 #include "vm/dart_api_impl.h" | 
| 9 #include "vm/lockers.h" | 9 #include "vm/lockers.h" | 
| 10 #include "vm/unit_test.h" | 10 #include "vm/unit_test.h" | 
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 287     last_frame_pointer = frame_pointer; | 287     last_frame_pointer = frame_pointer; | 
| 288     if (i < expected_frames) { | 288     if (i < expected_frames) { | 
| 289       VerifyStackFrame(frame, func_names[i], local_vars[i], skip_null_expects); | 289       VerifyStackFrame(frame, func_names[i], local_vars[i], skip_null_expects); | 
| 290     } else { | 290     } else { | 
| 291       VerifyStackFrame(frame, NULL, Dart_Null(), skip_null_expects); | 291       VerifyStackFrame(frame, NULL, Dart_Null(), skip_null_expects); | 
| 292     } | 292     } | 
| 293   } | 293   } | 
| 294 } | 294 } | 
| 295 | 295 | 
| 296 | 296 | 
| 297 // TODO(hausner): Convert this one remaining use of the legacy |  | 
| 298 // breakpoint handler once Dart_SetBreakpointHandler goes away. |  | 
| 299 void TestBreakpointHandler(Dart_IsolateId isolate_id, | 297 void TestBreakpointHandler(Dart_IsolateId isolate_id, | 
| 300                            Dart_Breakpoint bpt, | 298                            intptr_t bp_id, | 
| 301                            Dart_StackTrace trace) { | 299                            const Dart_CodeLocation& location) { | 
| 302   const char* expected_trace[] = {"A.foo", "main"}; | 300   const char* expected_trace[] = {"A.foo", "main"}; | 
| 303   const intptr_t expected_trace_length = 2; | 301   const intptr_t expected_trace_length = 2; | 
| 304   breakpoint_hit = true; | 302   breakpoint_hit = true; | 
| 305   breakpoint_hit_counter++; | 303   breakpoint_hit_counter++; | 
|  | 304   Dart_StackTrace trace; | 
|  | 305   Dart_GetStackTrace(&trace); | 
| 306   intptr_t trace_len; | 306   intptr_t trace_len; | 
| 307   Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); | 307   Dart_Handle res = Dart_StackTraceLength(trace, &trace_len); | 
| 308   EXPECT_VALID(res); | 308   EXPECT_VALID(res); | 
| 309   EXPECT_EQ(expected_trace_length, trace_len); | 309   EXPECT_EQ(expected_trace_length, trace_len); | 
| 310   for (int i = 0; i < trace_len; i++) { | 310   for (int i = 0; i < trace_len; i++) { | 
| 311     Dart_ActivationFrame frame; | 311     Dart_ActivationFrame frame; | 
| 312     res = Dart_GetActivationFrame(trace, i, &frame); | 312     res = Dart_GetActivationFrame(trace, i, &frame); | 
| 313     EXPECT_VALID(res); | 313     EXPECT_VALID(res); | 
| 314     Dart_Handle func_name; | 314     Dart_Handle func_name; | 
| 315     res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 315     res = Dart_ActivationFrameInfo(frame, &func_name, NULL, NULL, NULL); | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 329       "class A {              \n" | 329       "class A {              \n" | 
| 330       "  static void foo() {  \n" | 330       "  static void foo() {  \n" | 
| 331       "    moo('good news');  \n" | 331       "    moo('good news');  \n" | 
| 332       "  }                    \n" | 332       "  }                    \n" | 
| 333       "}                      \n" | 333       "}                      \n" | 
| 334       "void main() {          \n" | 334       "void main() {          \n" | 
| 335       "  A.foo();             \n" | 335       "  A.foo();             \n" | 
| 336       "}                      \n"; | 336       "}                      \n"; | 
| 337 | 337 | 
| 338   LoadScript(kScriptChars); | 338   LoadScript(kScriptChars); | 
| 339   Dart_SetBreakpointHandler(&TestBreakpointHandler); | 339   Dart_SetPausedEventHandler(&TestBreakpointHandler); | 
| 340   SetBreakpointAtEntry("A", "foo"); | 340   SetBreakpointAtEntry("A", "foo"); | 
| 341 | 341 | 
| 342   breakpoint_hit = false; | 342   breakpoint_hit = false; | 
| 343   Dart_Handle retval = Invoke("main"); | 343   Dart_Handle retval = Invoke("main"); | 
| 344   EXPECT_VALID(retval); | 344   EXPECT_VALID(retval); | 
| 345   EXPECT(breakpoint_hit == true); | 345   EXPECT(breakpoint_hit == true); | 
| 346 } | 346 } | 
| 347 | 347 | 
| 348 static const int stack_buffer_size = 1024; | 348 static const int stack_buffer_size = 1024; | 
| 349 static char stack_buffer[stack_buffer_size]; | 349 static char stack_buffer[stack_buffer_size]; | 
| (...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 978   breakpoint_hit_counter = 0; | 978   breakpoint_hit_counter = 0; | 
| 979   Dart_Handle retval = Invoke("main"); | 979   Dart_Handle retval = Invoke("main"); | 
| 980   EXPECT_VALID(retval); | 980   EXPECT_VALID(retval); | 
| 981   int64_t int_value = ToInt64(retval); | 981   int64_t int_value = ToInt64(retval); | 
| 982   EXPECT_EQ(30, int_value); | 982   EXPECT_EQ(30, int_value); | 
| 983   EXPECT_EQ(1, breakpoint_hit_counter); | 983   EXPECT_EQ(1, breakpoint_hit_counter); | 
| 984 } | 984 } | 
| 985 | 985 | 
| 986 | 986 | 
| 987 void TestBreakpointHandlerWithVerify(Dart_IsolateId isolate_id, | 987 void TestBreakpointHandlerWithVerify(Dart_IsolateId isolate_id, | 
| 988                                      Dart_Breakpoint bpt, | 988                                      intptr_t bp_id, | 
| 989                                      Dart_StackTrace trace) { | 989                                      const Dart_CodeLocation& location) { | 
| 990   breakpoint_hit = true; | 990   breakpoint_hit = true; | 
| 991   breakpoint_hit_counter++; | 991   breakpoint_hit_counter++; | 
| 992 | 992   Dart_StackTrace trace; | 
|  | 993   Dart_GetStackTrace(&trace); | 
| 993   Dart_ActivationFrame frame; | 994   Dart_ActivationFrame frame; | 
| 994   Dart_Handle res = Dart_GetActivationFrame(trace, 0, &frame); | 995   Dart_Handle res = Dart_GetActivationFrame(trace, 0, &frame); | 
| 995   EXPECT_VALID(res); | 996   EXPECT_VALID(res); | 
| 996   Dart_Handle func_name; | 997   Dart_Handle func_name; | 
| 997   intptr_t line_number = -1; | 998   intptr_t line_number = -1; | 
| 998   res = Dart_ActivationFrameInfo(frame, &func_name, NULL, &line_number, NULL); | 999   res = Dart_ActivationFrameInfo(frame, &func_name, NULL, &line_number, NULL); | 
| 999   EXPECT_NE(-1, line_number); | 1000   EXPECT_NE(-1, line_number); | 
| 1000   if (verbose) OS::Print("Hit line %" Pd "\n", line_number); | 1001   if (verbose) OS::Print("Hit line %" Pd "\n", line_number); | 
| 1001 | 1002 | 
| 1002   VerifyPointersVisitor::VerifyPointers(); | 1003   VerifyPointersVisitor::VerifyPointers(); | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1042       "main() {                        \n" | 1043       "main() {                        \n" | 
| 1043       "  var i = 3;                    \n" | 1044       "  var i = 3;                    \n" | 
| 1044       "  foo(i);                       \n" | 1045       "  foo(i);                       \n" | 
| 1045       "}                               \n"; | 1046       "}                               \n"; | 
| 1046 | 1047 | 
| 1047   LoadScript(kScriptChars); | 1048   LoadScript(kScriptChars); | 
| 1048   Dart_Handle result = Dart_SetNativeResolver(script_lib, | 1049   Dart_Handle result = Dart_SetNativeResolver(script_lib, | 
| 1049                                               &NoopNativeResolver, | 1050                                               &NoopNativeResolver, | 
| 1050                                               NULL); | 1051                                               NULL); | 
| 1051   EXPECT_VALID(result); | 1052   EXPECT_VALID(result); | 
| 1052   Dart_SetBreakpointHandler(&TestBreakpointHandlerWithVerify); | 1053   Dart_SetPausedEventHandler(&TestBreakpointHandlerWithVerify); | 
| 1053 | 1054 | 
| 1054   Dart_Handle script_url = NewString(TestCase::url()); | 1055   Dart_Handle script_url = NewString(TestCase::url()); | 
| 1055 | 1056 | 
| 1056   const intptr_t num_breakpoints = 9; | 1057   const intptr_t num_breakpoints = 9; | 
| 1057   intptr_t breakpoint_lines[num_breakpoints] = | 1058   intptr_t breakpoint_lines[num_breakpoints] = | 
| 1058       {5, 6, 7, 8, 9, 10, 11, 12, 13}; | 1059       {5, 6, 7, 8, 9, 10, 11, 12, 13}; | 
| 1059 | 1060 | 
| 1060   for (intptr_t i = 0; i < num_breakpoints; i++) { | 1061   for (intptr_t i = 0; i < num_breakpoints; i++) { | 
| 1061     result = Dart_SetBreakpoint(script_url, breakpoint_lines[i]); | 1062     result = Dart_SetBreakpoint(script_url, breakpoint_lines[i]); | 
| 1062     EXPECT_VALID(result); | 1063     EXPECT_VALID(result); | 
| (...skipping 1249 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2312       " null, 3, 7, 1, 8, 6, 9, 10, 10, 11, 11, 13," | 2313       " null, 3, 7, 1, 8, 6, 9, 10, 10, 11, 11, 13," | 
| 2313       " null, 4, 13, 3, 14, 10," | 2314       " null, 4, 13, 3, 14, 10," | 
| 2314       " null, 5, 17, 5, 18, 9, 19, 12," | 2315       " null, 5, 17, 5, 18, 9, 19, 12," | 
| 2315       " null, 6, 21, 1," | 2316       " null, 6, 21, 1," | 
| 2316       " null, 8, 24, 1, 25, 5, 26, 6, 27, 8," | 2317       " null, 8, 24, 1, 25, 5, 26, 6, 27, 8," | 
| 2317       " null, 9, 29, 1]", | 2318       " null, 9, 29, 1]", | 
| 2318       tokens_cstr); | 2319       tokens_cstr); | 
| 2319 } | 2320 } | 
| 2320 | 2321 | 
| 2321 }  // namespace dart | 2322 }  // namespace dart | 
| OLD | NEW | 
|---|