60e1c644b7
* breakpoint.c (condition_command): Handle watchpoint conditions. (is_hardware_watchpoint): Add comment. (is_watchpoint): New. (update_watchpoint): Don't reparse the watchpoint's condition unless necessary. (WP_IGNORE): New. (watchpoint_check): Use it. (bpstat_check_watchpoint): Handle it. (bpstat_check_breakpoint_conditions): Evaluate watchpoint local conditions in a frame where it makes sense. (watch_command_1): Store the innermost block of the condition expression. (delete_breakpoint): Delete the watchpoint condition expression. * breakpoint.h (struct bp_location) <cond>: Update comment. (struct breakpoint): New fields `cond_exp' and `cond_exp_valid_block'. gdb/testsuite/ * gdb.base/watch-cond.c, gdb.base/watch-cond.exp: New.
47 lines
993 B
C
47 lines
993 B
C
/* This testcase is part of GDB, the GNU debugger.
|
|
|
|
Copyright 2010 Free Software Foundation, Inc.
|
|
|
|
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/>. */
|
|
|
|
int global = 0;
|
|
int global2 = 0;
|
|
|
|
int func(int *foo)
|
|
{
|
|
(*foo)++;
|
|
global++;
|
|
global2++;
|
|
}
|
|
|
|
void func2(int *foo)
|
|
{
|
|
global2++;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
int q = 0;
|
|
|
|
func2 (&q);
|
|
global2++;
|
|
|
|
while (1)
|
|
{
|
|
func(&q);
|
|
}
|
|
|
|
return 0;
|
|
}
|