| OLD | NEW |
| 1 /* Manages interpreters for GDB, the GNU debugger. | 1 /* Manages interpreters for GDB, the GNU debugger. |
| 2 | 2 |
| 3 Copyright (C) 2000, 2002-2003, 2007-2012 Free Software Foundation, | 3 Copyright (C) 2000, 2002-2003, 2007-2012 Free Software Foundation, |
| 4 Inc. | 4 Inc. |
| 5 | 5 |
| 6 Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc. | 6 Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc. |
| 7 | 7 |
| 8 This file is part of GDB. | 8 This file is part of GDB. |
| 9 | 9 |
| 10 This program is free software; you can redistribute it and/or modify | 10 This program is free software; you can redistribute it and/or modify |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 | 38 |
| 39 typedef void *(interp_init_ftype) (struct interp *self, int top_level); | 39 typedef void *(interp_init_ftype) (struct interp *self, int top_level); |
| 40 typedef int (interp_resume_ftype) (void *data); | 40 typedef int (interp_resume_ftype) (void *data); |
| 41 typedef int (interp_suspend_ftype) (void *data); | 41 typedef int (interp_suspend_ftype) (void *data); |
| 42 typedef int (interp_prompt_p_ftype) (void *data); | 42 typedef int (interp_prompt_p_ftype) (void *data); |
| 43 typedef struct gdb_exception (interp_exec_ftype) (void *data, | 43 typedef struct gdb_exception (interp_exec_ftype) (void *data, |
| 44 const char *command); | 44 const char *command); |
| 45 typedef void (interp_command_loop_ftype) (void *data); | 45 typedef void (interp_command_loop_ftype) (void *data); |
| 46 typedef struct ui_out *(interp_ui_out_ftype) (struct interp *self); | 46 typedef struct ui_out *(interp_ui_out_ftype) (struct interp *self); |
| 47 | 47 |
| 48 typedef int (interp_set_logging_ftype) (struct interp *self, int start_log, |
| 49 struct ui_file *out, |
| 50 struct ui_file *logfile); |
| 51 |
| 48 struct interp_procs | 52 struct interp_procs |
| 49 { | 53 { |
| 50 interp_init_ftype *init_proc; | 54 interp_init_ftype *init_proc; |
| 51 interp_resume_ftype *resume_proc; | 55 interp_resume_ftype *resume_proc; |
| 52 interp_suspend_ftype *suspend_proc; | 56 interp_suspend_ftype *suspend_proc; |
| 53 interp_exec_ftype *exec_proc; | 57 interp_exec_ftype *exec_proc; |
| 54 interp_prompt_p_ftype *prompt_proc_p; | 58 interp_prompt_p_ftype *prompt_proc_p; |
| 55 | 59 |
| 56 /* Returns the ui_out currently used to collect results for this | 60 /* Returns the ui_out currently used to collect results for this |
| 57 interpreter. It can be a formatter for stdout, as is the case | 61 interpreter. It can be a formatter for stdout, as is the case |
| 58 for the console & mi outputs, or it might be a result | 62 for the console & mi outputs, or it might be a result |
| 59 formatter. */ | 63 formatter. */ |
| 60 interp_ui_out_ftype *ui_out_proc; | 64 interp_ui_out_ftype *ui_out_proc; |
| 61 | 65 |
| 66 /* Provides a hook for interpreters to do any additional |
| 67 setup/cleanup that they might need when logging is enabled or |
| 68 disabled. */ |
| 69 interp_set_logging_ftype *set_logging_proc; |
| 70 |
| 62 interp_command_loop_ftype *command_loop_proc; | 71 interp_command_loop_ftype *command_loop_proc; |
| 63 }; | 72 }; |
| 64 | 73 |
| 65 extern struct interp *interp_new (const char *name, const struct interp_procs *p
rocs); | 74 extern struct interp *interp_new (const char *name, const struct interp_procs *p
rocs); |
| 66 extern void interp_add (struct interp *interp); | 75 extern void interp_add (struct interp *interp); |
| 67 extern int interp_set (struct interp *interp, int top_level); | 76 extern int interp_set (struct interp *interp, int top_level); |
| 68 extern struct interp *interp_lookup (const char *name); | 77 extern struct interp *interp_lookup (const char *name); |
| 69 extern struct ui_out *interp_ui_out (struct interp *interp); | 78 extern struct ui_out *interp_ui_out (struct interp *interp); |
| 70 extern void *interp_data (struct interp *interp); | 79 extern void *interp_data (struct interp *interp); |
| 71 extern const char *interp_name (struct interp *interp); | 80 extern const char *interp_name (struct interp *interp); |
| 81 extern struct interp *interp_set_temp (const char *name); |
| 72 | 82 |
| 73 extern int current_interp_named_p (const char *name); | 83 extern int current_interp_named_p (const char *name); |
| 74 extern int current_interp_display_prompt_p (void); | 84 extern int current_interp_display_prompt_p (void); |
| 75 extern void current_interp_command_loop (void); | 85 extern void current_interp_command_loop (void); |
| 86 |
| 87 /* Call this function to give the current interpreter an opportunity |
| 88 to do any special handling of streams when logging is enabled or |
| 89 disabled. START_LOG is 1 when logging is starting, 0 when it ends, |
| 90 and OUT is the stream for the log file; it will be NULL when |
| 91 logging is ending. LOGFILE is non-NULL if the output streams |
| 92 are to be tees, with the log file as one of the outputs. */ |
| 93 |
| 94 extern int current_interp_set_logging (int start_log, struct ui_file *out, |
| 95 struct ui_file *logfile); |
| 96 |
| 76 /* Returns opaque data associated with the top-level interpreter. */ | 97 /* Returns opaque data associated with the top-level interpreter. */ |
| 77 extern void *top_level_interpreter_data (void); | 98 extern void *top_level_interpreter_data (void); |
| 78 extern struct interp *top_level_interpreter (void); | 99 extern struct interp *top_level_interpreter (void); |
| 79 | 100 |
| 80 /* True if the current interpreter is in async mode, false if in sync | 101 /* True if the current interpreter is in async mode, false if in sync |
| 81 mode. If in sync mode, running a synchronous execution command | 102 mode. If in sync mode, running a synchronous execution command |
| 82 (with execute_command, e.g, "next") will not return until the | 103 (with execute_command, e.g, "next") will not return until the |
| 83 command is finished. If in async mode, then running a synchronous | 104 command is finished. If in async mode, then running a synchronous |
| 84 command returns right after resuming the target. Waiting for the | 105 command returns right after resuming the target. Waiting for the |
| 85 command's completion is later done on the top event loop (using | 106 command's completion is later done on the top event loop (using |
| 86 continuations). */ | 107 continuations). */ |
| 87 extern int interpreter_async; | 108 extern int interpreter_async; |
| 88 | 109 |
| 89 extern void clear_interpreter_hooks (void); | 110 extern void clear_interpreter_hooks (void); |
| 90 | 111 |
| 91 /* well-known interpreters */ | 112 /* well-known interpreters */ |
| 92 #define INTERP_CONSOLE "console" | 113 #define INTERP_CONSOLE "console" |
| 93 #define INTERP_MI1 "mi1" | 114 #define INTERP_MI1 "mi1" |
| 94 #define INTERP_MI2 "mi2" | 115 #define INTERP_MI2 "mi2" |
| 95 #define INTERP_MI3 "mi3" | 116 #define INTERP_MI3 "mi3" |
| 96 #define INTERP_MI "mi" | 117 #define INTERP_MI "mi" |
| 97 #define INTERP_TUI "tui" | 118 #define INTERP_TUI "tui" |
| 98 #define INTERP_INSIGHT "insight" | 119 #define INTERP_INSIGHT "insight" |
| 99 | 120 |
| 100 #endif | 121 #endif |
| OLD | NEW |