How to use DWT mechanism of cortex-m33 to obtain the corresponding instruction and accessed memory in the run time?

I used two registers to configure and monitor continuous memory being accessed, the code shows as following:

uint32 memory[1000];
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk |CoreDebug_DEMCR_MON_EN_Msk;
uint32_t * comp1 = 0xE0001030;
*comp1 = &memory[999];
DWT->FUNCTION1 = (0<<11)|1<<4|7;
uint32_t *comp0 = 0xE0001020;
*comp0 = &memory[0];
DWT->FUNCTION0 = (0 << 11) | 1<<4 | 5;

Then, every instruction writes the memory will trigger an exception and invoke the DebugMon_Handler.

What I want is to do is to obtain which instruction to write the memory in DebugMon_Handler and the exact memory address involved.

Any suggestions on how to obtain the exact instruction & memory address that triggers the interrupt?

More questions in this forum