I haven’t tried it with Arduino but something I’ve done with other systems is add a small piece of code at the start of the program that fills the stack and heap areas with a simple pattern, such as all 0xFF or all 0x55 or incrementing values 0x01, 0x02, 0x03, …
You then use your program as usual and then at some point dump the stack/heap area and look for the area(s) where the pattern has been overwritten.
With the Arduboy you could use the global variable use reported after a compile to calculate the area to be filled with the pattern. The code to set the pattern would go at the very start of setup().
Assuming resetting to the bootloader doesn’t clear the RAM, you could press the reset button and then use avrdude to dump and examine the RAM.