mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
1367480341
Since commit
b4be1b0648
("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 */
|