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

Unified Diff: gdb/event-top.c

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/event-top.h ('k') | gdb/exceptions.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/event-top.c
diff --git a/gdb/event-top.c b/gdb/event-top.c
index 52e78523cf44f5308018ccbb351699419060bbe1..1290dd098261f304a9cd24bd418745007036933b 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -1,7 +1,6 @@
/* Top level stuff for GDB, the GNU debugger.
- Copyright (C) 1999-2002, 2004-2005, 2007-2012 Free Software
- Foundation, Inc.
+ Copyright (C) 1999-2013 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
@@ -36,6 +35,8 @@
#include "observer.h"
#include "continuations.h"
#include "gdbcmd.h" /* for dont_repeat() */
+#include "annotate.h"
+#include "maint.h"
/* readline include files. */
#include "readline/readline.h"
@@ -58,9 +59,6 @@ static void handle_sigquit (int sig);
static void handle_sighup (int sig);
#endif
static void handle_sigfpe (int sig);
-#if defined(SIGWINCH) && defined(SIGWINCH_HANDLER)
-static void handle_sigwinch (int sig);
-#endif
/* Functions to be invoked by the event loop in response to
signals. */
@@ -126,19 +124,16 @@ int input_fd;
handlers mark these functions as ready to be executed and the event
loop, in a later iteration, calls them. See the function
invoke_async_signal_handler. */
-void *sigint_token;
+static struct async_signal_handler *sigint_token;
#ifdef SIGHUP
-void *sighup_token;
+static struct async_signal_handler *sighup_token;
#endif
#ifdef SIGQUIT
-void *sigquit_token;
-#endif
-void *sigfpe_token;
-#if defined(SIGWINCH) && defined(SIGWINCH_HANDLER)
-void *sigwinch_token;
+static struct async_signal_handler *sigquit_token;
#endif
+static struct async_signal_handler *sigfpe_token;
#ifdef STOP_SIGNAL
-void *sigtstp_token;
+static struct async_signal_handler *sigtstp_token;
#endif
/* Structure to save a partially entered command. This is used when
@@ -172,9 +167,11 @@ rl_callback_read_char_wrapper (gdb_client_data client_data)
}
/* Initialize all the necessary variables, start the event loop,
- register readline, and stdin, start the loop. */
+ register readline, and stdin, start the loop. The DATA is the
+ interpreter data cookie, ignored for now. */
+
void
-cli_command_loop (void)
+cli_command_loop (void *data)
{
display_gdb_prompt (0);
@@ -238,6 +235,8 @@ display_gdb_prompt (char *new_prompt)
char *actual_gdb_prompt = NULL;
struct cleanup *old_chain;
+ annotate_display_prompt ();
+
/* Reset the nesting depth used when trace-commands is set. */
reset_command_nest_depth ();
@@ -272,6 +271,7 @@ display_gdb_prompt (char *new_prompt)
rl_callback_handler_remove(), does the job. */
rl_callback_handler_remove ();
+ do_cleanups (old_chain);
return;
}
else
@@ -415,7 +415,7 @@ command_handler (char *command)
int stdin_is_tty = ISATTY (stdin);
struct cleanup *stat_chain;
- quit_flag = 0;
+ clear_quit_flag ();
if (instream == stdin && stdin_is_tty)
reinitialize_more_filter ();
@@ -457,8 +457,6 @@ command_line_handler (char *rl)
char *p;
char *p1;
char *nline;
- char got_eof = 0;
-
int repeat = (instream == stdin);
if (annotation_level > 1 && instream == stdin)
@@ -503,7 +501,6 @@ command_line_handler (char *rl)
and exit from gdb. */
if (!rl || rl == (char *) EOF)
{
- got_eof = 1;
command_handler (0);
return; /* Lint. */
}
@@ -609,8 +606,7 @@ command_line_handler (char *rl)
*p = 0;
/* Add line to history if appropriate. */
- if (instream == stdin
- && ISATTY (stdin) && *linebuffer)
+ if (*linebuffer && input_from_terminal_p ())
add_history (linebuffer);
/* Note: lines consisting solely of comments are added to the command
@@ -769,11 +765,6 @@ async_init_signals (void)
sigfpe_token =
create_async_signal_handler (async_float_handler, NULL);
-#if defined(SIGWINCH) && defined(SIGWINCH_HANDLER)
- signal (SIGWINCH, handle_sigwinch);
- sigwinch_token =
- create_async_signal_handler (SIGWINCH_HANDLER, NULL);
-#endif
#ifdef STOP_SIGNAL
sigtstp_token =
create_async_signal_handler (async_stop_sig, NULL);
@@ -781,12 +772,6 @@ async_init_signals (void)
}
-void
-mark_async_signal_handler_wrapper (void *token)
-{
- mark_async_signal_handler ((struct async_signal_handler *) token);
-}
-
/* Tell the event loop what to do if SIGINT is received.
See event-signal.c. */
void
@@ -799,7 +784,7 @@ handle_sigint (int sig)
set quit_flag to 1 here. Then if QUIT is called before we get to
the event loop, we will unwind as expected. */
- quit_flag = 1;
+ set_quit_flag ();
/* If immediate_quit is set, we go ahead and process the SIGINT right
away, even if we usually would defer this to the event loop. The
@@ -828,10 +813,9 @@ async_request_quit (gdb_client_data arg)
/* If the quit_flag has gotten reset back to 0 by the time we get
back here, that means that an exception was thrown to unwind the
current command before we got back to the event loop. So there
- is no reason to call quit again here, unless immediate_quit is
- set. */
+ is no reason to call quit again here. */
- if (quit_flag || immediate_quit)
+ if (check_quit_flag ())
quit ();
}
@@ -841,7 +825,7 @@ async_request_quit (gdb_client_data arg)
static void
handle_sigquit (int sig)
{
- mark_async_signal_handler_wrapper (sigquit_token);
+ mark_async_signal_handler (sigquit_token);
signal (sig, handle_sigquit);
}
#endif
@@ -862,7 +846,7 @@ async_do_nothing (gdb_client_data arg)
static void
handle_sighup (int sig)
{
- mark_async_signal_handler_wrapper (sighup_token);
+ mark_async_signal_handler (sighup_token);
signal (sig, handle_sighup);
}
@@ -886,7 +870,7 @@ async_disconnect (gdb_client_data arg)
TRY_CATCH (exception, RETURN_MASK_ALL)
{
- pop_all_targets (1);
+ pop_all_targets ();
}
signal (SIGHUP, SIG_DFL); /*FIXME: ??????????? */
@@ -898,7 +882,7 @@ async_disconnect (gdb_client_data arg)
void
handle_stop_sig (int sig)
{
- mark_async_signal_handler_wrapper (sigtstp_token);
+ mark_async_signal_handler (sigtstp_token);
signal (sig, handle_stop_sig);
}
@@ -938,7 +922,7 @@ async_stop_sig (gdb_client_data arg)
static void
handle_sigfpe (int sig)
{
- mark_async_signal_handler_wrapper (sigfpe_token);
+ mark_async_signal_handler (sigfpe_token);
signal (sig, handle_sigfpe);
}
@@ -950,17 +934,6 @@ async_float_handler (gdb_client_data arg)
divide by zero causes this, so "float" is a misnomer. */
error (_("Erroneous arithmetic operation."));
}
-
-/* Tell the event loop what to do if SIGWINCH is received.
- See event-signal.c. */
-#if defined(SIGWINCH) && defined(SIGWINCH_HANDLER)
-static void
-handle_sigwinch (int sig)
-{
- mark_async_signal_handler_wrapper (sigwinch_token);
- signal (sig, handle_sigwinch);
-}
-#endif
/* Called by do_setshow_command. */
@@ -983,7 +956,7 @@ gdb_setup_readline (void)
time. */
if (!batch_silent)
gdb_stdout = stdio_fileopen (stdout);
- gdb_stderr = stdio_fileopen (stderr);
+ gdb_stderr = stderr_fileopen ();
gdb_stdlog = gdb_stderr; /* for moment */
gdb_stdtarg = gdb_stderr; /* for moment */
gdb_stdtargerr = gdb_stderr; /* for moment */
« no previous file with comments | « gdb/event-top.h ('k') | gdb/exceptions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698