Например, после инструкции
pop {pc}
записывает недопустимое значение, скажем, 0, в регистр pc
, ЦП попытается извлечь инструкцию, расположенную в 0, что обычно вызовет ошибку сегмента.
При обработке ошибки мы можем прочитать значения регистров, включая регистр pc
, который в данном случае равен 0. Очевидно, что если бы мы могли узнать адрес инструкции, которая вызвала недопустимое значение pc
, как адрес вышеприведенной инструкции pop
, это помогло бы нам намного больше с отладкой. Есть ли способ отловить ошибку чуть раньше (поймать предыдущую инструкцию, которая вызвала ошибку)?