Sorry I may not be much help but I see there’s no responses yet…
I’ve not needed to perform “deep debugging” beyond just watching the Kernel boot messages on the terminal during boot. That’s been sufficient so far. This is due to that fact that the socfpga Kernels are pretty mature. If your not using one of the Kernels that already has all the socfpga drivers included then you’ve got a real project on your hands! There’s been years of work to get the Cyclone, Arria (etc) working properly. Are you using one of these Kernels? If you’re going to deviate from the typical procedures (yocto, buildroot, etc) then again you’ll have a project on your hands (with not much documentation).
Kernels with all the latest socfpga drivers are located here:
git clone https://github.com/altera-opensource/linux-socfpga.git
Here’s the tags for recommended Kernels with the latest security patches:
rel_socfpga-4.9.76-ltsi-rt_18.02.01_pr # latest real-time version
If you need help building a custom Linux distro using Buildroot I can help. There’s lots of examples here on rocketboards for yocto (Angstrum).
DS-5 and the GNU Debugger both work for debugging an app running in Linux.
I’ve never used the JTAG to debug on the ARM other than with DS-5 which is a deep well (lots of online info from ARM).
Hope this helps a little.