1367480341
Since commit b4be1b064860 ("Fix MI output for multi-location breakpoints") we get this error when building with --disable-gdbmi: CXXLD gdb /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:6358: error: undefined reference to 'mi_multi_location_breakpoint_output_fixed(ui_out*)' This is due to breakpoint.c using a function defined in mi/mi-main.c, even though mi/mi-main.c isn't included in the build. To fix it, use the flags feature of ui_out. mi_ui_out has the new fix_multi_location_breakpoint_output flag set for versions >= 3. Also, move the global variable fix_multi_location_breakpoint_output to breakpoint.c, so it can be read there even when we build without MI. I renamed it to fix_multi_location_breakpoint_output_globally so it doesn't clash with the new enumerator. gdb/ChangeLog: * breakpoint.h (fix_multi_location_breakpoint_output_globally): New variable declaration. * breakpoint.c (fix_multi_location_breakpoint_output_globally): New variable. (print_one_breakpoint): Use ui_out::test_flags and new global variable to compute use_fixed_output. * mi/mi-main.h (mi_multi_location_breakpoint_output_fixed): Remove. * mi/mi-main.c (fix_multi_location_breakpoint_output): Remove. (mi_multi_location_breakpoint_output_fixed): Remove. (mi_cmd_fix_multi_location_breakpoint_output): Adjust to set the new variable. * mi/mi-out.c (mi_ui_out::mi_ui_out): Set fix_multi_location_breakpoint_output flag if version >= 3. * ui-out.h (enum ui_out_flag) <fix_multi_location_breakpoint_output>: New enumerator.
63 lines
1.9 KiB
C
63 lines
1.9 KiB
C
/* MI Internal Functions for GDB, the GNU debugger.
|
|
|
|
Copyright (C) 2003-2019 Free Software Foundation, Inc.
|
|
|
|
This file is part of GDB.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
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 MI_MI_MAIN_H
|
|
#define MI_MI_MAIN_H
|
|
|
|
struct ui_file;
|
|
|
|
extern void mi_load_progress (const char *section_name,
|
|
unsigned long sent_so_far,
|
|
unsigned long total_section,
|
|
unsigned long total_sent,
|
|
unsigned long grand_total);
|
|
|
|
extern void mi_print_timing_maybe (struct ui_file *file);
|
|
|
|
/* Whether MI is in async mode. */
|
|
|
|
extern int mi_async_p (void);
|
|
|
|
extern char *current_token;
|
|
|
|
extern int running_result_record_printed;
|
|
extern int mi_proceeded;
|
|
|
|
struct mi_suppress_notification
|
|
{
|
|
/* Breakpoint notification suppressed? */
|
|
int breakpoint;
|
|
/* Command param changed notification suppressed? */
|
|
int cmd_param_changed;
|
|
/* Traceframe changed notification suppressed? */
|
|
int traceframe;
|
|
/* Memory changed notification suppressed? */
|
|
int memory;
|
|
/* User selected context changed notification suppressed? */
|
|
int user_selected_context;
|
|
};
|
|
extern struct mi_suppress_notification mi_suppress_notification;
|
|
|
|
/* Implementation of -fix-multi-location-breakpoint-output. */
|
|
|
|
extern void mi_cmd_fix_multi_location_breakpoint_output (const char *command,
|
|
char **argv, int argc);
|
|
|
|
#endif /* MI_MI_MAIN_H */
|