Best approach to debugging?

Hi, I’m (still) working on writing an on-device gdb server for user programs on the v5 brain. I’ve gotten to the point where most of the things you need for everyday debugging are working (e.g. breakpoints, single stepping, Ctrl-C to pause at an arbitrary location, etc) but I’m having some trouble adding compatibility with the more popular frameworks: performing a single step has like a 50/50 chance of working and the test of the time just freezes up. Continuing a program also just doesn’t work under freertos which is pretty annoying. This is usually accompanied by obvious signs of memory corruption or other misconfiguration, e.g. the text “Waiting for Download…” appearing at the top of the screen, the brain touchscreen no longer working until I reboot, the PROS CPU fault error message being drawn on the LCD but freezing before any text appears, etc.

As you can imagine this is really hard to debug because there’s very little indication of what is going wrong, only information that tells me that something is going wrong. I’ve been kind of banging my head against the wall with this problem for a while, so I’m starting to look into possibly connecting up a j-link or something. Does anyone have any info about how feasible this is before I commit to buying one, e.g. does VEXos disable the DAP? Are there even jtag pads exposed? If it helps I’m not worried about voiding my warranty or anything like that.