У меня есть программа, которую я написал в C++ под Linux (Ubuntu 10.10).
Программирование и отладка работали отлично до тех пор, пока я не добавил следующие строки в код:
mapfile = fopen(map_filename,"wb");
fwrite(map_header,1,20,mapfile); // <-- this is the problem line
fclose(mapfile);
После того, как я добавил их, программа компилируется нормально, но отладчик теперь не запускается. Это сообщение немедленно выходит из строя:
Program completed, Exit code 0x177
error while loading shared libraries: unexpected PLT reloc type 0xcc
И если я удалю строку с помощью "fwrite", отладчик начнет нормально.
Эта проблема происходит только внутри Netbeans. Когда я отлаживаю его с помощью командной строки "gdb", он также работает нормально без каких-либо проблем.
У кого-нибудь есть идея, почему это происходит и как это исправить?
PS: Эти проблемы начались недавно, поэтому я предполагаю, что, возможно, он должен что-то сделать с обновлением системы, я не уверен.
Нашел проблему:
Недавно я удалил несколько старых C++ проектов из netbeans. Он подсчитал, что netbeans (по крайней мере, v7.0) запоминает все точки останова, которые я ставил на старые проекты, которые еще не существуют в среде IDE.
Я нашел это, посмотрев Консоль отладчика (Window-> Отладка-> Отладочная консоль) и, увидев, что при запуске "gdb", он пытается настроить все эти точки останова из других проектов или из проектов, которые не существуют (это ошибка в netbeans, кстати)
Решение: я просто очистил все точки останова (внутри Window-> Debugging-> Breakpoints), и теперь программа может быть отлажена должным образом.
Надеюсь, это поможет любому, кто имеет подобную проблему.