In releases, the date is not included in either version strings or
sonames. */
-#define BFD_VERSION_DATE 20200206
+#define BFD_VERSION_DATE 20200208
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
+2020-02-08 Joel Brobecker <brobecker@adacore.com>
+
+ * version.in: Set GDB version number to 9.1.
+
+2020-02-05 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ PR gdb/25190:
+ * gdb/remote-sim.c (gdb_os_write_stderr): Update.
+ * gdb/remote.c (remote_console_output): Update.
+ * gdb/ui-file.c (fputs_unfiltered): Rename to...
+ (ui_file_puts): ...this.
+ * gdb/ui-file.h (ui_file_puts): Add declaration.
+ * gdb/utils.c (emit_style_escape): Update.
+ (flush_wrap_buffer): Update.
+ (fputs_maybe_filtered): Update.
+ (fputs_unfiltered): Add function.
+
+2020-02-05 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * gdb/event-loop.c (gdb_wait_for_event): Update.
+ * gdb/printcmd.c (printf_command): Update.
+ * gdb/remote-fileio.c (remote_fileio_func_write): Update.
+ * gdb/remote-sim.c (gdb_os_flush_stdout): Update.
+ (gdb_os_flush_stderr): Update.
+ * gdb/remote.c (remote_console_output): Update.
+ * gdb/ui-file.c (gdb_flush): Rename to...
+ (ui_file_flush): ...this.
+ (stderr_file::write): Update.
+ (stderr_file::puts): Update.
+ * gdb/ui-file.h (gdb_flush): Rename to...
+ (ui_file_flush): ...this.
+ * gdb/utils.c (gdb_flush): Add function.
+ * gdb/utils.h (gdb_flush): Add declaration.
+
+2020-02-07 Tom Tromey <tromey@adacore.com>
+
+ PR breakpoints/24915:
+ * source.c (find_and_open_source): Do not check basenames_may_differ.
+
2020-01-10 Christian Biesinger <cbiesinger@google.com>
* gdbsupport/common-defs.h: Don't define _FORTIFY_SOURCE on MinGW.
int num_found = 0;
/* Make sure all output is done before getting another event. */
- gdb_flush (gdb_stdout);
- gdb_flush (gdb_stderr);
+ ui_file_flush (gdb_stdout);
+ ui_file_flush (gdb_stderr);
if (gdb_notifier.num_fds == 0)
return -1;
/* Don't use a _filtered function here. It causes the assumed
character position to be off, since the newline we read from
the user is not accounted for. */
- fputs_unfiltered (actual_gdb_prompt.c_str (), gdb_stdout);
+ fprintf_unfiltered (gdb_stdout, "%s", actual_gdb_prompt.c_str ());
gdb_flush (gdb_stdout);
}
}
ui_printf (arg, gdb_stdout);
reset_terminal_style (gdb_stdout);
wrap_here ("");
- gdb_flush (gdb_stdout);
+ ui_file_flush (gdb_stdout);
}
/* Implement the "eval" command. */
case FIO_FD_CONSOLE_OUT:
ui_file_write (target_fd == 1 ? gdb_stdtarg : gdb_stdtargerr,
(char *) buffer, length);
- gdb_flush (target_fd == 1 ? gdb_stdtarg : gdb_stdtargerr);
+ ui_file_flush (target_fd == 1 ? gdb_stdtarg : gdb_stdtargerr);
ret = length;
break;
default:
static void
gdb_os_flush_stdout (host_callback *p)
{
- gdb_flush (gdb_stdtarg);
+ ui_file_flush (gdb_stdtarg);
}
/* GDB version of os_write_stderr callback. */
{
b[0] = buf[i];
b[1] = 0;
- fputs_unfiltered (b, gdb_stdtargerr);
+ ui_file_puts (gdb_stdtargerr, b);
}
return len;
}
static void
gdb_os_flush_stderr (host_callback *p)
{
- gdb_flush (gdb_stdtargerr);
+ ui_file_flush (gdb_stdtargerr);
}
/* GDB version of printf_filtered callback. */
tb[0] = c;
tb[1] = 0;
- fputs_unfiltered (tb, gdb_stdtarg);
+ ui_file_puts (gdb_stdtarg, tb);
}
- gdb_flush (gdb_stdtarg);
+ ui_file_flush (gdb_stdtarg);
}
struct stop_reply : public notif_event
result = gdb_open_cloexec (fullname->get (), OPEN_MODE, 0);
if (result >= 0)
{
- if (basenames_may_differ)
- *fullname = gdb_realpath (fullname->get ());
- else
- *fullname = gdb_abspath (fullname->get ());
+ *fullname = gdb_realpath (fullname->get ());
return scoped_fd (result);
}
if (rewritten_filename != NULL)
filename = rewritten_filename.get ();
- openp_flags flags = OPF_SEARCH_IN_PATH;
- if (basenames_may_differ)
- flags |= OPF_RETURN_REALPATH;
-
/* Try to locate file using filename. */
- result = openp (path, flags, filename, OPEN_MODE, fullname);
+ result = openp (path, OPF_SEARCH_IN_PATH | OPF_RETURN_REALPATH, filename,
+ OPEN_MODE, fullname);
if (result < 0 && dirname != NULL)
{
/* Remove characters from the start of PATH that we don't need when
cdir_filename.append (SLASH_STRING);
cdir_filename.append (filename_start);
- result = openp (path, flags, cdir_filename.c_str (), OPEN_MODE,
- fullname);
+ result = openp (path, OPF_SEARCH_IN_PATH | OPF_RETURN_REALPATH,
+ cdir_filename.c_str (), OPEN_MODE, fullname);
}
if (result < 0)
{
/* Didn't work. Try using just the basename. */
p = lbasename (filename);
if (p != filename)
- result = openp (path, flags, p, OPEN_MODE, fullname);
+ result = openp (path, OPF_SEARCH_IN_PATH | OPF_RETURN_REALPATH, p,
+ OPEN_MODE, fullname);
}
return scoped_fd (result);
+2020-02-07 Tom Tromey <tromey@adacore.com>
+
+ PR breakpoints/24915:
+ * gdb.base/annotate-symlink.exp: Use setup_xfail.
+
2020-01-06 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.base/backtrace.c: New file.
gdb_test_no_output "set annotate 1"
+# The patch to cause this output was reverted.
+# See PR breakpoints/24915.
+setup_xfail *-*-* 24915
gdb_test "continue" \
"Breakpoint .* func .*realname-expand-link.c:$decimal\r\n\032\032.*realname-expand-link.c:.*"
\f
void
-gdb_flush (struct ui_file *file)
+ui_file_flush (struct ui_file *file)
{
file->flush ();
}
}
void
-fputs_unfiltered (const char *buf, struct ui_file *file)
+ui_file_puts (struct ui_file *file, const char *buf)
{
file->puts (buf);
}
void
stderr_file::write (const char *buf, long length_buf)
{
- gdb_flush (gdb_stdout);
+ ui_file_flush (gdb_stdout);
stdio_file::write (buf, length_buf);
}
void
stderr_file::puts (const char *linebuffer)
{
- gdb_flush (gdb_stdout);
+ ui_file_flush (gdb_stdout);
stdio_file::puts (linebuffer);
}
/* A preallocated null_file stream. */
extern null_file null_stream;
-extern void gdb_flush (ui_file *);
+extern void ui_file_flush (ui_file *);
extern int ui_file_isatty (struct ui_file *);
extern long ui_file_read (struct ui_file *file, char *buf, long length_buf);
+extern void ui_file_puts (struct ui_file *file, const char *buf);
+
extern int gdb_console_fputs (const char *, FILE *);
/* A std::string-based ui_file. Can be used as a scratch buffer for
if (stream == nullptr)
wrap_buffer.append (style.to_ansi ());
else
- fputs_unfiltered (style.to_ansi ().c_str (), stream);
+ ui_file_puts (stream, style.to_ansi ().c_str ());
}
/* Set the current output style. This will affect future uses of the
{
if (stream == gdb_stdout && !wrap_buffer.empty ())
{
- fputs_unfiltered (wrap_buffer.c_str (), stream);
+ ui_file_puts (stream, wrap_buffer.c_str ());
wrap_buffer.clear ();
}
}
+/* See utils.h. */
+
+void
+gdb_flush (struct ui_file *stream)
+{
+ flush_wrap_buffer (stream);
+ ui_file_flush (stream);
+}
+
/* Indicate that if the next sequence of characters overflows the line,
a newline should be inserted here rather than when it hits the end.
If INDENT is non-null, it is a string to be printed to indent the
|| top_level_interpreter ()->interp_ui_out ()->is_mi_like_p ())
{
flush_wrap_buffer (stream);
- fputs_unfiltered (linebuffer, stream);
+ ui_file_puts (stream, linebuffer);
return;
}
/* Now output indentation and wrapped string. */
if (wrap_column)
{
- fputs_unfiltered (wrap_indent, stream);
+ ui_file_puts (stream, wrap_indent);
if (stream->can_emit_style_escape ())
emit_style_escape (save_style, stream);
/* FIXME, this strlen is what prevents wrap_indent from
fputs_maybe_filtered (linebuffer, stream, 1);
}
+void
+fputs_unfiltered (const char *linebuffer, struct ui_file *stream)
+{
+ fputs_maybe_filtered (linebuffer, stream, 0);
+}
+
/* See utils.h. */
void
extern struct ui_file **current_ui_gdb_stderr_ptr (void);
extern struct ui_file **current_ui_gdb_stdlog_ptr (void);
+/* Flush STREAM. This is a wrapper for ui_file_flush that also
+ flushes any output pending from uses of the *_filtered output
+ functions; that output is kept in a special buffer so that
+ pagination and styling are handled properly. */
+extern void gdb_flush (struct ui_file *);
+
/* The current top level's ui_file streams. */
/* Normal results */