Advanced debugging and lower level programming

Hi There,

This is a general question as I am trying to find more resources to learn lower level programming and debugging.

I have ESP32 and can get JTAG debugger to work, and my debugger is working fine (albeit sporadically but nevertheless working). I can use manual stepping, variable watch, and breakpoints (which serve just fine in most circumstance combined with print statements) but I am completely lost when it comes down to memory addresses and their content (deconstruct, panic break…etc). I have been trying to find resources/courses/books on how to understand this information/memory structures, addressing…etc. (I have figured out how to decode backtraces using PIO monitor and that helped a lot).

Any help and guidance on where to extend my knowledge and close this gap between binary/bare metal and library level coding would be greatly appreciated.