Я использую CodeBlocks 17.12 в комплекте с MingGW: GDB 7.11.1, mingw32-gcc 5.1.0 и mingw32-g++ 5.1.0.
При установке точки останова во время работы программы я получаю сигнал SIGTRAP. Я могу продолжить работу после точки останова и ударить ее несколько раз. Когда я удаляю точку останова, программа все равно останавливается на той же строке с SIGTRAP. При следующем продолжении он останавливается с SIGILL, и я больше не могу продолжать.
Точка останова устанавливается в строке 9, строке cout:
#include <iostream>
using namespace std;
int main()
{
for(int i = 0; i < 65000; i++)
{
cout << "Hello world!" << endl;
}
return 0;
}
Вывод отладчика в CodeBlocks:
Trying to interrupt process with pid: 19600; child pid: 19600 gdb pid: 20264
Continuing...
Program received signal SIGTRAP, Trace/breakpoint trap.
At C:\Users\twalczak\Desktop\test\main.cpp:9
Continuing...
At C:\Users\twalczak\Desktop\test\main.cpp:9
Continuing...
At C:\Users\twalczak\Desktop\test\main.cpp:9
Continuing...
At C:\Users\twalczak\Desktop\test\main.cpp:9
Continuing...
At C:\Users\twalczak\Desktop\test\main.cpp:9
Continuing...
At C:\Users\twalczak\Desktop\test\main.cpp:9
PC register is not available <-- 'Breakpoint removed at this point'
Continuing...
Program received signal SIGTRAP, Trace/breakpoint trap.
At C:\Users\twalczak\Desktop\test\main.cpp:9
Continuing...
Program received signal SIGILL, Illegal instruction.
At C:\Users\twalczak\Desktop\test\main.cpp:9
EDIT Удалено в комплекте, потому что я использовал пользовательскую установку MinGW, а не пакетную установку.