This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Prevent source file errors in --batch-silent mode
- From: Andrew STUBBS <andrew dot stubbs at st dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>
- Date: Fri, 02 May 2008 12:35:01 +0100
- Subject: Re: [PATCH] Prevent source file errors in --batch-silent mode
- References: <480CD958.8010409@st.com> <20080501203347.GT22218@caradoc.them.org>
Daniel Jacobowitz wrote:
This is OK, if you will move the extern to a header file.
New version attached. There was prior art for this in event-top.c, so
I've fixed that up also.
OK?
Andrew
2008-05-02 Andrew Stubbs <andrew.stubbs@st.com>
* main.h (batch_silent): Declare.
* event-top.c: Include main.h.
(gdb_setup_readline): Remove extern batch_silent declaration.
* infrun.c (normal_stop): Don't print source location when running in
--batch-silent mode.
Index: src2/gdb/infrun.c
===================================================================
--- src2.orig/gdb/infrun.c 2008-05-02 10:34:13.000000000 +0100
+++ src2/gdb/infrun.c 2008-05-02 11:26:06.000000000 +0100
@@ -3171,7 +3171,10 @@ Further execution is probably impossible
bpstat_print() contains the logic deciding in detail
what to print, based on the event(s) that just occurred. */
- if (stop_print_frame)
+ /* If --batch-silent is enabled then there's no need to print the current
+ source location, and to try risks causing an error message about
+ missing source files. */
+ if (stop_print_frame && !batch_silent)
{
int bpstat_ret;
int source_flag;
Index: src2/gdb/event-top.c
===================================================================
--- src2.orig/gdb/event-top.c 2008-03-14 19:55:51.000000000 +0000
+++ src2/gdb/event-top.c 2008-05-02 11:24:30.000000000 +0100
@@ -31,6 +31,7 @@
#include <signal.h>
#include "exceptions.h"
#include "cli/cli-script.h" /* for reset_command_nest_depth */
+#include "main.h"
/* For dont_repeat() */
#include "gdbcmd.h"
@@ -1084,8 +1085,6 @@ gdb_setup_readline (void)
that the sync setup is ALL done in gdb_init, and we would only
mess it up here. The sync stuff should really go away over
time. */
- extern int batch_silent;
-
if (!batch_silent)
gdb_stdout = stdio_fileopen (stdout);
gdb_stderr = stdio_fileopen (stderr);
Index: src2/gdb/main.h
===================================================================
--- src2.orig/gdb/main.h 2008-01-01 22:53:12.000000000 +0000
+++ src2/gdb/main.h 2008-05-02 11:24:05.000000000 +0100
@@ -33,5 +33,6 @@ extern int gdb_main (struct captured_mai
/* From main.c. */
extern int return_child_result;
extern int return_child_result_value;
+extern int batch_silent;
#endif