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

Side by Side Diff: gdb/interps.h

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months 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 | « gdb/inline-frame.c ('k') | gdb/interps.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
OLDNEW
« no previous file with comments | « gdb/inline-frame.c ('k') | gdb/interps.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698