Here's an updated patch that adds a warning if the sscanf(3) line in gdb/linux-tdep.c fails. I've again verified locally that the patch causes gcore to generate a corefile such that gdb can generate an accurate backtrace from it.
I would appreciate review on the changes made to gdb/linux-tdep.c in the patch. It attempts to do what the prior version of the patch did, parsing /proc/PID/smaps instead of /proc/PID/maps and look for whether a few specific entries in each mapping are non-zero to indicate whether the mapping has been modified. The code in question was moved from gdb/linux-nat.c to gdb/linux-tdep.c and restructured to be line-oriented, which complicted things a bit.