My program doesn't work as expected after adding registers to the SFR window.

The debugger reads the register-value from target, if the SFR-View is updated. If you add a register, which clears some bits after read (e.g. interrupt status or similar) then the value of this register changes after SFR update and an unexpected program behavior may occur.

To avoid this problem, read the data from another register (special debug register, e.g. ADC_RESRD instead of ADC_RESR on TriCore). If this is not possible, you may use a variable in your program, which can be monitored using Locals-View or Watch-View.