There is a major problem in setting breakpoints in gcc functions when -freorder-blocks-and-partition is in effect (which is the default in recent gcc): Stepping with "s" is broken when stepping into a function. A test case plus some discussion can be found at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84550 .
I'm setting milestone so we don't forget evaluating before 8.1.1 is out.
Changing the milestone as discussed on gdb-patches: https://www.sourceware.org/ml/gdb-patches/2018-04/msg00455.html
Fixed in both HEAD and gdb-8.2-branch by this set of patches: https://sourceware.org/ml/gdb-patches/2018-08/msg00541.html
AFAICT, this is now solved, so closing. Please re-open if mistaken. Thanks!