LINUX.ORG.RU

отладка в KDevelop


0

0

При запуске проги на с++ сначала была проблема с компилированием:

cd '/home/spirit/Cpp' && LC_MESSAGES="C" LC_CTYPE="C" make -k make: *** No targets specified and no makefile found. Stop. *** Exited with status: 2 ***

Она была решена путем создания makefile вручную. Всегда ли для компиляции в kdevelop нужно вручную создавать makefile? Теперь после компиляции появляется другая ошибка:

Application does not exist The application you're trying to debug, does not exist. Check that you've specified the right application in the debugger configuration.

Также недоступно пошаговое исполнение/исполнение до указанной строки... Хотелось бы узнать, по какой причине это может быть или в чем еще удобно отлаживать проги на с++.

/ось - debian Lenny (testing)/

Ответ на: комментарий от YesSSS

не думаю... в мане пишут "Options starting with -g, -f, -m, -O, -W, or --param are automatically passed on to the various sub-processes invoked by g++." а что значит -g? об этом там не сказано...

может, в makefile что-то не так? вот его содержимое: "ex2_1: g++ ex2_1.cpp -o ex2_1"

StormSpirit
() автор топика
Ответ на: комментарий от anonymous

эм... мне пофик, в чем отлаживать прогу. но прога обещает быть большой и сложной (курсовая все же), поэтому перехожу с консольного компилятора на нечто графическое со встроенной отладкой.

StormSpirit
() автор топика
Ответ на: комментарий от StormSpirit

Options for Debugging Your Program or GCC

GCC has various special options that are used for debugging either your program or GCC:

-g Produce debugging information in the operating system’s native format (stabs, COFF, XCOFF, or DWARF 2). GDB can work with this debugging information.

ну и далее по man gcc. т.е. добавь к вызову g++ опцию -g. После этого скорее всего все заработает, в kdevelop с отладка пашет весьма нормально.

YesSSS ★★★
()
Ответ на: комментарий от StormSpirit

Довай тогда подробнее, что написано в Makefile, что именно не работает и действия пошагово. Я правильно понимаю, что прога запускается и не останавливается на breakpoint-е при запуске через Debug->start?

YesSSS ★★★
()
Ответ на: комментарий от YesSSS

да, не останавливается. специально для проверки простую работающую взяла. в makefile: "ex2_1: g++ ex2_1.cpp -o ex2_1" (ну или "ex2_1: g++ ex2_1.cpp -o ex2_1, -g" - рез-т один) про "что именно не работает есть в посте: после компиляции появляется окно с текстом "Application does not exist The application you're trying to debug, does not exist. Check that you've specified the right application in the debugger configuration." и недоступно пошаговое исполнение х.х

StormSpirit
() автор топика

Английским языком же пишут:

> Application does not exist The application you're trying to debug, does not exist. Check that you've specified the right application in the debugger configuration.

не понимает оно какой бинарник запустить. Пойди в конфигурацию дебагера и поищи где это можно указать...

gods-little-toy ★★★
()
Ответ на: комментарий от StormSpirit

Попробуй так:

Makefile:

ex2_1:
     g++ -g ex2_1.cpp -o ex2_1

В kdevelop в Project->Options->Run options->Main Program->Executable указываешь путь к исполняемому файлу, в Project->Options->Build Options выбираешь Build Tool: Make, 
указываешь каталог в котором вызывается make, в закладке make указываешь default make target (в твоем случае ex2_1). Удаляешь исполняемый файл, запускаешь make(скорее всего будет работать сборка и из kdevelop), в редакторе кода ставишь breakpoint на одну из первых строк кода, Debug->Start. 

YesSSS ★★★
()
Ответ на: комментарий от gods-little-toy

в debugger executable записала данный бинарник (строка была пуста). теперь норм, но если в проге сделать ошибку, о ней не всегда сообщается. например, если убрать одну из {} - сообщается. если вместо /= написать / - не сообщается. и пошаговое исполнение все равно отсутствует. странно это...

StormSpirit
() автор топика
Ответ на: комментарий от StormSpirit

a / b; - валидно в C/C++, это не ошибка.

В окне messages нажми правой кнопкой мыши, выбери Full Compiller Output и пересобери приложение. Напиши с какими флагами вызывался gcc. Адрес проги прописывается не в debugger executable а в Main program executable. В debugger executable пропиши путь к gdb(например /usr/bin/gdb) или ни чего не прописывай(сам найдет).

YesSSS ★★★
()
Ответ на: комментарий от YesSSS

Спасибо, проблема решена ) /*странно, что в гугле ничего про настройки не было, мде. даже немного неудобно от того, что о такой простой вещи спрашивать пришлось*/

StormSpirit
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.