ОК, я понял это при сборке с помощью mingw-w64 (нативный или кросс-компилятор).
Я не уверен, в чем именно заключалась проблема, но если я собираю его, используя gcc mingw-w64 i686-5.1.0-posix-sjlj-rt_v4-rev0, то он создает (наконец) отладочные сборки. В противном случае
(gdb) break main
...
(gdb) r
...
Cannot insert breakpoint 1.
Cannot access memory at address 0x42445c
<process basically hangs>
сообщение 19 раз из 20, хотя иногда оно действительно срабатывало (очень редко).
GDB 7.8.1 и 7.9.1, казалось, были в состоянии отладить созданный exe. Так что, вероятно, не версия GDB имеет значение.
Моя текущая теория / подозрение - это либо версия gcc, либо, возможно, «аспект» sljl vs. dwarf2 для компилятора [?] (I686-492-posix-dwarf-rt_v3-rev1 не работал, и кросс-компиляция с какой-то формой gcc 4.9.2 тоже не удалось). Не пробовал другие версии gcc.
обновление: более новый gcc (5.1.0), но кросс-компиляция Я все еще получал этот сбой. Причиной в этом случае оказалась библиотека зависимостей, которую использовала моя сборка (FFmpeg) путем ссылки на (в данном случае libgme), которая экспортирует несколько ошибочных «общих» символов (когда я собираю статический исполняемый файл). Из-за этого «общая» сборка тормоза (https://trac.ffmpeg.org/ticket/282) и каким-то образом также приводит к порче gdb. Например, возможное связывание с SDL может сделать это и для вас. Моя мысль, возможно, ошибка ld
[? ]