Хотя я мог бы неправильно понять вопрос,
как насчет создания фиктивной функции и вызова ее в SETSTATE
,
затем установить точку останова в этой функции?
Например:
void dummy_breakpoint() {}
#define SETSTATE(st) dummy_breakpoint(); ...usual process...
Установка break dummy_breakpoint
в .gdbinit
может помочь в экономии труда.
EDIT:
Как насчет установки точки наблюдения в SETSTATE
, как показано ниже, и
настройка watch dummy_variable
в .gdbinit
?
char dummy_variable; /* global variable */
#define SETSTATE(st) ++ dummy_variable; ...usual process...
Однако это может замедлить выполнение программы, если
среда не обеспечивает аппаратную точку наблюдения ...