Debugger disassembly missing most source code with GCC 9.3.1

I am developing for Cortex-M0+ using Microchip's Atmel Studio. I recently downloaded GCC 9.3.1 to use with a project that needs C++17 (not supported on GCC 6.3.1 that comes with Atmel Studio). When I'm in the debugger (Atmel Studio running GDB), I find the live disassembly has large swaths of "No source file". The effect of that is to make it very difficult to step and set breakpoints because the debugger can't find the machine code for a given source line. If I switch back to the older GCC, this issue generally goes away. The disassembly produced by objdump has no gaps in the source code, so the info must still be present in the object file.

Does anyone know if there's been a change in the debugging info emitted by the compiler?  Might there be a GCC command option that could fix this?  I have built tools that dig into DWARF format, so I could potentially make one that modified the debug info if that's what it took.

More questions in this forum