/* See top.h. */
ui::ui (FILE *instream_, FILE *outstream_, FILE *errstream_)
- : next (nullptr),
- num (++highest_ui_num),
- call_readline (nullptr),
- input_handler (nullptr),
- command_editing (0),
- interp_info (nullptr),
- async (0),
- secondary_prompt_depth (0),
+ : num (++highest_ui_num),
stdin_stream (instream_),
instream (instream_),
outstream (outstream_),
errstream (errstream_),
input_fd (fileno (instream)),
m_input_interactive_p (ISATTY (instream)),
- prompt_state (PROMPT_NEEDED),
m_gdb_stdout (new pager_file (new stdio_file (outstream))),
m_gdb_stdin (new stdio_file (instream)),
m_gdb_stderr (new stderr_file (errstream)),
- m_gdb_stdlog (m_gdb_stderr),
- m_current_uiout (nullptr)
+ m_gdb_stdlog (m_gdb_stderr)
{
buffer_init (&line_buffer);
DISABLE_COPY_AND_ASSIGN (ui);
/* Pointer to next in singly-linked list. */
- struct ui *next;
+ struct ui *next = nullptr;
/* Convenient handle (UI number). Unique across all UIs. */
int num;
point of invocation. In the special case in which the character
read is newline, the function invokes the INPUT_HANDLER callback
(see below). */
- void (*call_readline) (gdb_client_data);
+ void (*call_readline) (gdb_client_data) = nullptr;
/* The function to invoke when a complete line of input is ready for
processing. */
- void (*input_handler) (gdb::unique_xmalloc_ptr<char> &&);
+ void (*input_handler) (gdb::unique_xmalloc_ptr<char> &&) = nullptr;
/* True if this UI is using the readline library for command
editing; false if using GDB's own simple readline emulation, with
no editing support. */
- int command_editing;
+ int command_editing = 0;
/* Each UI has its own independent set of interpreters. */
- struct ui_interp_info *interp_info;
+ struct ui_interp_info *interp_info = nullptr;
/* True if the UI is in async mode, false if in sync mode. If in
sync mode, a synchronous execution command (e.g, "next") does not
the top event loop. For the main UI, this starts out disabled,
until all the explicit command line arguments (e.g., `gdb -ex
"start" -ex "next"') are processed. */
- int async;
+ int async = 0;
/* The number of nested readline secondary prompts that are
currently active. */
- int secondary_prompt_depth;
+ int secondary_prompt_depth = 0;
/* The UI's stdin. Set to stdin for the main UI. */
FILE *stdin_stream;
bool m_input_interactive_p;
/* See enum prompt_state's description. */
- enum prompt_state prompt_state;
+ enum prompt_state prompt_state = PROMPT_NEEDED;
/* The fields below that start with "m_" are "private". They're
meant to be accessed through wrapper macros that make them look
struct ui_file *m_gdb_stdlog;
/* The current ui_out. */
- struct ui_out *m_current_uiout;
+ struct ui_out *m_current_uiout = nullptr;
/* Register the UI's input file descriptor in the event loop. */
void register_file_handler ();