Что проще, писать или отлаживать...

Модератор: Модераторы разделов

Аватара пользователя
Ryba
Сообщения: 12

Что проще, писать или отлаживать...

Сообщение Ryba »

Привет народ.
Поставил Linux c KDevelop 3.0.4
Написал кусок проги на С++(c Qt) даже скомпилировал кое-как...
Неплохо бы и отладить, в KDevelop отладчик отмороженный напрочь, выдает одну ересь. Попробовал запустить исполняемый файл в kdbg вроде файл открывается и даже исполняется, только исходного текста проги не видно даже брекпойнт некуда поставить. Что сделать, чтоб отладчик нормально заработал?
В моем аквариуме установлен: Linux Mandrake 10.1 + KDE 3.2
Спасибо сказали:
Аватара пользователя
Ryba
Сообщения: 12

Re: Что проще, писать или отлаживать...

Сообщение Ryba »

В мэйкфайле для компилятора стоят такие флаги

CFLAGS = -pipe -Wall -W -O2 -fomit-frame-pointer -pipe -march=i586 -mtune=pentiumpro -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT

CXXFLAGS = -pipe -Wall -W -O2 -fomit-frame-pointer -pipe -march=i586 -mtune=pentiumpro -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT

меня смущает -DQT_NO_DEBUG хотя если его убрать лучше не становится
В моем аквариуме установлен: Linux Mandrake 10.1 + KDE 3.2
Спасибо сказали:
Аватара пользователя
aLexx programmer
Сообщения: 985
Статус: Турук-Макто
ОС: Gentoo -> Ubuntu

Re: Что проще, писать или отлаживать...

Сообщение aLexx programmer »

добавить флаг -g и заменить -O2 на -O0 (минус о ноль)
Спасибо сказали:
Аватара пользователя
Ryba
Сообщения: 12

Re: Что проще, писать или отлаживать...

Сообщение Ryba »

Пробовал добавлять в опции компилятора -ggdb не помогает.
Пишет, что: "Нет исходного кода"

aLexx: Пробовал и так, ответ один "Нет исходного кода"
В моем аквариуме установлен: Linux Mandrake 10.1 + KDE 3.2
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Что проще, писать или отлаживать...

Сообщение polachok »

-fomit-frame-pointer

имхо убрать
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
Ryba
Сообщения: 12

Re: Что проще, писать или отлаживать...

Сообщение Ryba »

Попробовал убрать -format-frame-pointer не помогает...
В моем аквариуме установлен: Linux Mandrake 10.1 + KDE 3.2
Спасибо сказали:
Аватара пользователя
Hvzh
Сообщения: 711
Статус: Gone with Linux
ОС: Linux Mint 18.1

Re: Что проще, писать или отлаживать...

Сообщение Hvzh »

Ryba писал(а):
07.06.2006 16:07
Попробовал убрать -format-frame-pointer не помогает...


Можешь проект твой прислать в зипе?
HP 255 G4 A6-6310 + Linux Mint 18.1 + Windoze7 under VmWare + OS X Mavericks under VmWare
Спасибо сказали:
Аватара пользователя
Ryba
Сообщения: 12

Re: Что проще, писать или отлаживать...

Сообщение Ryba »

Могу. Куда слать?
В моем аквариуме установлен: Linux Mandrake 10.1 + KDE 3.2
Спасибо сказали:
Аватара пользователя
Hvzh
Сообщения: 711
Статус: Gone with Linux
ОС: Linux Mint 18.1

Re: Что проще, писать или отлаживать...

Сообщение Hvzh »

Ryba писал(а):
07.06.2006 16:19
Могу. Куда слать?


hvzh@rambler.ru
HP 255 G4 A6-6310 + Linux Mint 18.1 + Windoze7 under VmWare + OS X Mavericks under VmWare
Спасибо сказали:
Аватара пользователя
Ryba
Сообщения: 12

Re: Что проще, писать или отлаживать...

Сообщение Ryba »

Hvzh: Отправил
В моем аквариуме установлен: Linux Mandrake 10.1 + KDE 3.2
Спасибо сказали:
Аватара пользователя
Hvzh
Сообщения: 711
Статус: Gone with Linux
ОС: Linux Mint 18.1

Re: Что проще, писать или отлаживать...

Сообщение Hvzh »

Ryba писал(а):
07.06.2006 17:15
Hvzh: Отправил


Аська у тебя есть?
HP 255 G4 A6-6310 + Linux Mint 18.1 + Windoze7 under VmWare + OS X Mavericks under VmWare
Спасибо сказали:
Аватара пользователя
Hvzh
Сообщения: 711
Статус: Gone with Linux
ОС: Linux Mint 18.1

Re: Что проще, писать или отлаживать...

Сообщение Hvzh »

Ну, раз ты пропал, то пишу, что у меня получилось. Под KDevelop все отлаживается нормально. Правда, версия у меня 3.3.2. В Kdbg тоже все работает, но это отстой. Посмотри, есть ли у тебя в дистре DDD. Это вполне приличный отладчик, с ним тоже все нормально пашет
HP 255 G4 A6-6310 + Linux Mint 18.1 + Windoze7 under VmWare + OS X Mavericks under VmWare
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Что проще, писать или отлаживать...

Сообщение elide »

отвечу на сабж (:
очень сложно писать так, чтоб было легко отлаживать (:
слава роботам!
Спасибо сказали:
Аватара пользователя
nerezus
Сообщения: 525
Статус: Вселенский отказник
ОС: windoze

Re: Что проще, писать или отлаживать...

Сообщение nerezus »

Что проще, писать или отлаживать...

Мне отлаживать проще, т.к. пишу небольшими кусками "снизу вверх", и их отлаживаю. Это на пхп )
ICQ 547097
Спасибо сказали:
sdk
Бывший модератор
Сообщения: 210

Re: Что проще, писать или отлаживать...

Сообщение sdk »

Ryba, попробуй отладчик запускать из директории с исходниками.

Если отвечать на сабж, то так:
Смотря как писать и смотря как отлаживать ;).
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
Спасибо сказали:
Mutex
Сообщения: 22

Re: Что проще, писать или отлаживать...

Сообщение Mutex »

Подниму старую тему.
Есть Debian 4.0, KDE 3.5.5, KDevelop 3.3.5 и QT3.3.7
Проблема в отладке в КДевелопере. Даже просто создаю стандартный проект С++ -> QMake приложение. Собираю (тут все ОК).
Делаю "наблюдение" за несколькими переменными в исходнике, делаю точку отсанова - и запускаю старт дебага.
Вот выдает лог:

Код: Выделить всё

/usr/bin/gdb /home/mutex/testqt/./bin/testqt -fullname -quiet
(gdb) set edit off
(gdb) set confirm off
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) (gdb)
(gdb) set print static-members off
(gdb) tty /dev/pts/3
(gdb) set width 0
(gdb) set height 0
(gdb) set stop-on 1
(gdb) handle SIG32 pass nostop noprint
(gdb) handle SIG41 pass nostop noprint
(gdb) handle SIG42 pass nostop noprint
(gdb) handle SIG43 pass nostop noprint
(gdb) set print asm-demangle on
(gdb) set output-radix 10
(gdb) cd /home/mutex/testqt/./bin
(gdb) break /home/mutex/testqt/src/testqt.cpp:177
No source file named /home/mutex/testqt/src/testqt.cpp.
(gdb) run
Failed to read a valid object file image from memory.

(gdb) backtrace
[Thread debugging using libthread_db enabled]
[New Thread -1222011200 (LWP 3997)]
Stopped due to shared library event
#0  0xb7fc2010 in _dl_debug_state () from /lib/ld-linux.so.2
#1  0xb7fb8c35 in ?? () from /lib/ld-linux.so.2
#2  0xb7fcc1e0 in _rtld_global () from /lib/ld-linux.so.2
#3  0xb7fcc6a4 in ?? ()
#4  0x00000000 in ?? ()
(gdb) info thread
  1 Thread -1222011200 (LWP 3997)  0xb7fc2010 in _dl_debug_state () from /lib/ld-linux.so.2
(gdb) info args
No symbol table info available.
(gdb) info local
No symbol table info available.
(gdb) print QString
No symbol "QString" in current context.

(gdb) print ts
No symbol "ts" in current context.

(gdb) break /home/mutex/testqt/src/testqt.cpp:177
No source file named /home/mutex/testqt/src/testqt.cpp.

(gdb) frame 0
#0  0xb7fc2010 in _dl_debug_state () from /lib/ld-linux.so.2
(gdb) info args
No symbol table info available.
(gdb) info local
No symbol table info available.


Вопрос - в чем проблема? Очень хочется таки наблюдать построчный дебаг, работу точек останова и содержание нужных переменных...
Спасибо сказали:
Аватара пользователя
GRS
Сообщения: 236
Статус: C++ Pro
ОС: Suse10.2/XP

Re: Что проще, писать или отлаживать...

Сообщение GRS »

У К,К. хорошо написано про это дело в его книге про отладку без исходных текстов.
Просто у программистов Linux и Windows разный подход к отладке. У Windows это бряки, trace и остальные новороты Visual Studio и Bounce Cheker, в Linux все решают логи.
Собственно когда я устроился на 2-ую работу, где я начал писать под nix меня к логам быстренько приучили.
еще так же научили делать дамп через ulimit и через gdb смотреть его.

вначале мне логи показались не удобными, но со временем я заметил что нахождение ошибок что под Windows что под nix у меня уходит практически одинакавое количество времени.
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: Что проще, писать или отлаживать...

Сообщение v04bvs »

Иногда баг быстрее найти отладкой, иногда логами. Универсального рецепта нет.
Спасибо сказали:
mops
Сообщения: 172
ОС: Ubuntu Feisty

Re: Что проще, писать или отлаживать...

Сообщение mops »

...в KDevelop отладчик отмороженный напрочь, выдает одну ересь. ...

Это не есть правда. Вполне себе нормальные значения выдаёт. Да ещё и QString можно просмотреть :)
Спасибо сказали:
Mutex
Сообщения: 22

Re: Что проще, писать или отлаживать...

Сообщение Mutex »

GRS, а в логах пишутся значения всех переменных в момент падения программы? И что за К.К. ?

У меня в основном какая проблема - я могу найти в какой момент падает программа, поэтому хочу знать содержимое всех нужных мне переменных на момент крушения. Если бы это были int или QString - это еще несложно, но часто бывают сложные структуры, и вывести в консоль их содержимое проблематично...
Спасибо сказали: