/* Debugging routines for the remote server for GDB.
- Copyright (C) 2014 Free Software Foundation, Inc.
+ Copyright (C) 2014-2019 Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef DEBUG_H
-#define DEBUG_H
+#ifndef GDBSERVER_DEBUG_H
+#define GDBSERVER_DEBUG_H
+
+#if !defined (IN_PROCESS_AGENT)
+extern int remote_debug;
+
+/* Switch all debug output to DEBUG_FILE. If DEBUG_FILE is nullptr or an
+ empty string, or if the file cannot be opened, then debug output is sent to
+ stderr. */
+void debug_set_output (const char *debug_file);
+#endif
-/* We declare debug format variables here, and debug_threads but no other
- debug content variables (e.g., not remote_debug) because while this file
- is not currently used by IPA it may be some day, and IPA may have its own
- set of debug content variables. It's ok to declare debug_threads here
- because it is misnamed - a better name is debug_basic or some such,
- which can work for any program, gdbserver or IPA. If/when this file is
- used with IPA it is recommended to fix debug_thread's name. */
extern int debug_threads;
extern int debug_timestamp;
-void debug_printf (const char *msg, ...) ATTRIBUTE_PRINTF (1, 2);
void debug_flush (void);
void do_debug_enter (const char *function_name);
void do_debug_exit (const char *function_name);
+/* Async signal safe debug output function that calls write directly. */
+size_t debug_write (const void *buf, size_t nbyte);
+
/* These macros are for use in major functions that produce a lot of
debugging output. They help identify in the mass of debugging output
when these functions enter and exit. debug_enter is intended to be
do { } while (0)
#endif
-#endif /* DEBUG_H */
+#endif /* GDBSERVER_DEBUG_H */