Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 #ifndef INCLUDE_DART_DEBUGGER_API_H_ | 5 #ifndef INCLUDE_DART_DEBUGGER_API_H_ |
| 6 #define INCLUDE_DART_DEBUGGER_API_H_ | 6 #define INCLUDE_DART_DEBUGGER_API_H_ |
| 7 | 7 |
| 8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
| 9 | 9 |
| 10 typedef struct _Dart_Breakpoint* Dart_Breakpoint; | 10 typedef struct _Dart_Breakpoint* Dart_Breakpoint; |
| 11 | 11 |
| 12 typedef struct _Dart_StackTrace* Dart_StackTrace; | |
| 13 | |
| 14 typedef struct _Dart_ActivationFrame* Dart_ActivationFrame; | |
| 15 | |
| 16 typedef void Dart_BreakpointHandler( | |
| 17 Dart_Breakpoint breakpoint, | |
| 18 Dart_StackTrace stack_trace); | |
|
siva
2011/12/09 02:20:04
Why do we need to always create a stack trace and
hausner
2011/12/13 00:14:59
As we discussed in person, I strive for an interfa
| |
| 12 | 19 |
| 13 /** | 20 /** |
| 14 * Sets a breakpoint at the entry of the given function. If class_name | 21 * Sets a breakpoint at the entry of the given function. If class_name |
| 15 * is the empty string, looks for a library function with the given | 22 * is the empty string, looks for a library function with the given |
| 16 * name. | 23 * name. |
| 17 * | 24 * |
| 18 * Requires there to be a current isolate. | 25 * Requires there to be a current isolate. |
| 19 * | 26 * |
| 20 * \breakpoint If non-null, will point to the breakpoint object | 27 * \breakpoint If non-null, will point to the breakpoint object |
| 21 * if a breakpoint was successfully created. | 28 * if a breakpoint was successfully created. |
| 22 * | 29 * |
| 23 * \return A handle to the True object if no error occurs. | 30 * \return A handle to the True object if no error occurs. |
| 24 */ | 31 */ |
| 25 DART_EXPORT Dart_Handle Dart_SetBreakpointAtEntry( | 32 DART_EXPORT Dart_Handle Dart_SetBreakpointAtEntry( |
| 26 Dart_Handle library, | 33 Dart_Handle library, |
| 27 Dart_Handle class_name, | 34 Dart_Handle class_name, |
| 28 Dart_Handle function_name, | 35 Dart_Handle function_name, |
| 29 Dart_Breakpoint* breakpoint); | 36 Dart_Breakpoint* breakpoint); |
| 30 | 37 |
| 38 /** | |
| 39 * Installs a handler callback function that gets called by the VM | |
| 40 * when a breakpoint has been reached. | |
| 41 * | |
| 42 * Requires there to be a current isolate. | |
| 43 */ | |
| 44 DART_EXPORT void Dart_SetBreakpointHandler( | |
| 45 Dart_BreakpointHandler bp_handler); | |
|
siva
2011/12/09 02:20:04
I am wondering if long term we would need an event
hausner
2011/12/13 00:14:59
I like the DebugEvent idea as a generalization. I
| |
| 46 | |
| 47 | |
| 48 /** | |
| 49 * Returns in \length the number of activation frames in the given | |
| 50 * stack trace. | |
| 51 * | |
| 52 * Requires there to be a current isolate. | |
| 53 * | |
| 54 * \return A handle to the True object if no error occurs. | |
| 55 */ | |
| 56 DART_EXPORT Dart_Handle Dart_StackTraceLength( | |
| 57 Dart_StackTrace trace, | |
| 58 intptr_t* length); | |
| 59 | |
| 60 | |
| 61 /** | |
| 62 * Returns in \frame the activation frame with index \frame_index. | |
| 63 * The activation frame at the top of stack has index 0. | |
| 64 * | |
| 65 * Requires there to be a current isolate. | |
| 66 * | |
| 67 * \return A handle to the True object if no error occurs. | |
| 68 */ | |
| 69 DART_EXPORT Dart_Handle Dart_GetActivationFrame( | |
| 70 Dart_StackTrace trace, | |
| 71 int frame_index, | |
| 72 Dart_ActivationFrame* frame); | |
| 73 | |
| 74 | |
| 75 /** | |
| 76 * Returns information about the given activation frame. | |
| 77 * \function_name receives a string handle with the qualified | |
| 78 * function name. | |
| 79 * \script_url receives a string handle with the url of the | |
| 80 * source script that contains the frame's function. | |
| 81 * \line_number receives the line number in the script. | |
| 82 * | |
| 83 * Any or all of the out parameters above may be NULL. | |
| 84 * | |
| 85 * Requires there to be a current isolate. | |
| 86 * | |
| 87 * \return A handle to the True object if no error occurs. | |
| 88 */ | |
| 89 DART_EXPORT Dart_Handle Dart_ActivationFrameInfo( | |
| 90 Dart_ActivationFrame activation_frame, | |
| 91 Dart_Handle* function_name, | |
| 92 Dart_Handle* script_url, | |
| 93 intptr_t* line_number); | |
| 94 | |
| 95 | |
| 31 #endif // INCLUDE_DART_DEBUGGER_API_H_ | 96 #endif // INCLUDE_DART_DEBUGGER_API_H_ |
| OLD | NEW |