Я хочу что -то похожее на точку разрыва данных, но в программном виде, чтобы сломать чтения и записать в определенное поле или переменную, определенную через тип обертки < /p>
Код: Выделить всё
class SomeSystem {
public:
int a;
int b;
int c;
};
Допустим, я хочу обнаружить записи в C во время выполнения и сломать их
Код: Выделить всё
class SomeSystem {
public:
int a;
int b;
MyWatch c;
};
< /code>
и mywatch что -то вроде < /p>
template
class MyWatch {
// ...
void OnRead();
void OnWrite();
};
// ...
void MyWatch::OnRead() {
__debugbreak();
}
void MyWatch::OnWrite() {
__debugbreak();
}
Проблема в том, что я не знаю, как заставить компилятор относиться к mywatch как int неявно во всех местах по всей базе кода. Я планирую использовать его в качестве своего отладчика для отладки любых типов, включая нетривиальные. Некоторые из типов используют неявные преобразования Bool, оператор-> или обычный оператор доступа к члену. Если тип является типом значения. Есть ли способ переслать все упоминания о экземпляре MyWatch значении в его базовое значение t одновременно? Это, конечно, не помогает мне найти memset -подобные записи в память, но все же может быть полезным для меня. Точки остановки данных иногда не запускаются, и мне приходится заботиться о том, чтобы установить их после создания, чтобы я должен был найти, где создание экземпляров происходит в первую очередь
Подробнее здесь:
https://stackoverflow.com/questions/794 ... m-a-specif