+2021-05-06 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
+
+ * mi/mi-cmd-break.c (mi_cmd_break_insert_1): Recognize the
+ '--force-condition' flag to force the condition in the
+ '-break-insert' and '-dprintf-insert' commands.
+ * NEWS: Mention the change.
+
2021-05-04 Tom de Vries <tdevries@suse.de>
PR guile/27806
equivalent of the CLI's "break -qualified" and "dprintf
-qualified".
+ ** '-break-insert --force-condition' and '-dprintf-insert --force-condition'
+
+ The MI -break-insert and -dprintf-insert commands now support a
+ '--force-condition' flag to forcibly define a condition even when
+ the condition is invalid at all locations of the breakpoint. This
+ is equivalent to the '-force-condition' flag of the CLI's "break"
+ command.
+
* GDB now supports core file debugging for x86_64 Cygwin programs.
* GDB will now look for the .gdbinit file in a config directory before
+2021-05-06 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
+
+ * gdb.texinfo (GDB/MI Breakpoint Commands): Mention the
+ '--force-condition' flag of the '-break-insert' and
+ '-dprintf-insert' commands.
+
2021-05-04 Simon Marchi <simon.marchi@polymtl.ca>
* python.texi (Types In Python): Re-organize Type.fields doc.
@smallexample
-break-insert [ -t ] [ -h ] [ -f ] [ -d ] [ -a ] [ --qualified ]
- [ -c @var{condition} ] [ -i @var{ignore-count} ]
+ [ -c @var{condition} ] [ --force-condition ] [ -i @var{ignore-count} ]
[ -p @var{thread-id} ] [ @var{location} ]
@end smallexample
is used together with @samp{-h}, a fast tracepoint is created.
@item -c @var{condition}
Make the breakpoint conditional on @var{condition}.
+@item --force-condition
+Forcibly define the breakpoint even if the condition is invalid at
+all of the breakpoint locations.
@item -i @var{ignore-count}
Initialize the @var{ignore-count}.
@item -p @var{thread-id}
@smallexample
-dprintf-insert [ -t ] [ -f ] [ -d ] [ --qualified ]
- [ -c @var{condition} ] [ -i @var{ignore-count} ]
+ [ -c @var{condition} ] [--force-condition] [ -i @var{ignore-count} ]
[ -p @var{thread-id} ] [ @var{location} ] [ @var{format} ]
[ @var{argument} ]
@end smallexample
Create a disabled breakpoint.
@item -c @var{condition}
Make the breakpoint conditional on @var{condition}.
+@item --force-condition
+Forcibly define the breakpoint even if the condition is invalid at
+all of the breakpoint locations.
@item -i @var{ignore-count}
Set the ignore count of the breakpoint (@pxref{Conditions, ignore count})
to @var{ignore-count}.
int is_explicit = 0;
struct explicit_location explicit_loc;
std::string extra_string;
+ bool force_condition = false;
enum opt
{
HARDWARE_OPT, TEMP_OPT, CONDITION_OPT,
IGNORE_COUNT_OPT, THREAD_OPT, PENDING_OPT, DISABLE_OPT,
TRACEPOINT_OPT,
+ FORCE_CONDITION_OPT,
QUALIFIED_OPT,
EXPLICIT_SOURCE_OPT, EXPLICIT_FUNC_OPT,
EXPLICIT_LABEL_OPT, EXPLICIT_LINE_OPT
{"f", PENDING_OPT, 0},
{"d", DISABLE_OPT, 0},
{"a", TRACEPOINT_OPT, 0},
+ {"-force-condition", FORCE_CONDITION_OPT, 0},
{"-qualified", QUALIFIED_OPT, 0},
{"-source" , EXPLICIT_SOURCE_OPT, 1},
{"-function", EXPLICIT_FUNC_OPT, 1},
is_explicit = 1;
explicit_loc.line_offset = linespec_parse_line_offset (oarg);
break;
+ case FORCE_CONDITION_OPT:
+ force_condition = true;
+ break;
}
}
create_breakpoint (get_current_arch (), location.get (), condition, thread,
extra_string.c_str (),
- false,
+ force_condition,
0 /* condition and thread are valid. */,
temp_p, type_wanted,
ignore_count,
+2021-05-06 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
+
+ * gdb.mi/mi-break.exp (test_forced_conditions): New proc that
+ is called by the test.
+
2021-05-05 Tom de Vries <tdevries@suse.de>
* gdb.threads/detach-step-over.exp: Do exp_continue when encountering
".*Source filename requires function, label, or line offset.*"
}
+# Test forcing an invalid condition.
+
+proc_with_prefix test_forced_conditions {} {
+ set warning ".*warning: failed to validate condition .* disabling.*"
+
+ set loc [mi_make_breakpoint_loc -enabled "N"]
+ set args [list -cond "bad" -locations "\\\[$loc\\\]"]
+ set bp [eval mi_make_breakpoint_multi $args]
+
+ mi_gdb_test "-break-insert -c bad --force-condition callme" \
+ "${warning}\\^done,$bp" \
+ "breakpoint with forced condition"
+
+ mi_gdb_test "-dprintf-insert -c bad --force-condition callme \"Hello\"" \
+ "${warning}\\^done,$bp" \
+ "dprintf with forced condition"
+}
+
proc test_break {mi_mode} {
global srcdir subdir binfile
test_abreak_creation
test_explicit_breakpoints
+
+ test_forced_conditions
}
if [gdb_debug_enabled] {