Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Отладчики под LInux GDB и другие.  (Прочитано 3500 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dez

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
    • Itarium-online
Отладчики под LInux GDB и другие.
« : 11 Июля 2010, 14:40:26 »
Доброго дня.
Возник такой вопрос - какие есть отладчики под Linux кроме GDB ?
Возможно платные.

сразу отвечу GDB не устраивает своим быстродействием и удобством.
Т.е. часто задумывается на минуту на невинной строке
++m_Ticks;
иногда пауза между переходами между соседними строками бывает около 10-ти секунд.
и т.д.


Может я не умею его готовить - тогда буду признателен за рекомендации по настройке или чем-то таком

Ubuntu 10.4 amd64
« Последнее редактирование: 13 Июля 2010, 13:21:36 от Dez »

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: Какие есть отладчики кроме GDB ?
« Ответ #1 : 12 Июля 2010, 10:59:39 »
UndoDB
ZeroBugs

Гугл еще что-нибудь покажет.

UPD.
Беглый просмотр результатов поиска по словам gdb is slow принес вот эту ссылку: http://stackoverflow.com/questions/2446116/gdb-hardware-watchpoint-very-slow-why

Если попробовать скомпилировать gdb из исходников, возможно, скорость его работы увеличится.
Удобнее, правда, он от этого не станет :)

Еще рекомендуют поставить переменную окружения LD_BIND_NOW в какое-нибудь непустое значение.
http://sourceware.org/ml/gdb/2007-01/msg00029.html

А еще лучше - поставить пакет libc6-dbg.
« Последнее редактирование: 12 Июля 2010, 19:31:05 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Dez

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
    • Itarium-online
Re: Отладчики под LInux GDB и другие.
« Ответ #2 : 13 Июля 2010, 13:28:13 »
Итак постараюсь описать симптоматику тормозов GDB

1) Относительно скорости работы
а) Под CodeBloks работает достаточно быстро пока не включишь окно watch (значение переменных), если это окно включить - то начинаются тормоза
б) под QTCreator версии 1.x работает достаточно шустро но иногда тормозит в разных местах
в) под QTCreator версии 2.0 работает жутко медленно и GDB грузит проц на 100 процентов

2) Относительно удобства работы
а) под студией в случае вылета эксепшена - студия останавливается в месте выброса эксепшена
а вот в Linuxовых IDE все по другому у тебя просто останавливается отладчик и становится активной кнопочка дальше, чтобы увидеть где ты сейчас находишься я делал следующее - шаг на одну инструкцию, калстек и показать где я.

3) Относительно других отладчиков
а) ZeroBugs под ubuntu 10.4 установить к сожалению не удалось хотя с удовольствием купил бы его в случае его адекватности (как его купить на сайте так же не указано)

4) Как правильно установить переменную окружения типа LD_BIND_NOW (я знаю несколько способов и не понятно какой из них правильны, да и не понятно какой из них для чего служит)?

5) Пакет libc6-dbg поставил - ничего принципиально нового не заметил

и как всегда буду признателен за рекомендации и советы.

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Отладчики под LInux GDB и другие.
« Ответ #3 : 13 Июля 2010, 13:34:00 »
Цитировать
4) Как правильно установить переменную окружения типа LD_BIND_NOW (я знаю несколько способов и не понятно какой из них правильны, да и не понятно какой из них для чего служит)?
А что пробовал и что именно не получилось. Казалось бы нужно про сто сделать export LD_BIND_NOW=... в том терминале из которого запускаешь приложение. Так как ты запускаешь его средствами IDE то нужно в оной найти как задать окружение в котором нужно запускать приложение и добавить эту переменную. Хотя не все IDE такую возможность предоставляют.

Оффлайн Dez

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
    • Itarium-online
Re: Отладчики под LInux GDB и другие.
« Ответ #4 : 13 Июля 2010, 13:44:54 »
пробовал что-то типа
set LD_BIND_NOW=1
global export LD_BIND_NOW=1
export LD_BIND_NOW=1
set env ... (или как-то так)

(в примерах могут быть ошибки сейчас Linuxа под рукой нет)

так вот - какой способ для чего нужен - ХЗ

так же есть способ задать переменную окружения так чтобы оно сохранилось в системе - как сделать не знаю/не помню
знаю что сменив локаль один раз - теперь не получается ее вернуть обратно  ;D

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Отладчики под LInux GDB и другие.
« Ответ #5 : 13 Июля 2010, 14:08:21 »
Цитировать
export LD_BIND_NOW=1
Если используешь bash (а по дефолту в убунте в качестве интерактивного шела используется именно он), то верно это, а остальное нет. Задать переменную так, чтобы она была установленна для всех процессов можно здесь: /etc/environment но не нужно.

Переменные окружения это не что-то глобальное, это локальные данные одного приложения. Когда один процесс порождает дочерний процесс он может передать ему копию своих переменных окружения. Именно так и работает команда export. Она не является самостоятельной программой, она не что иное как команда bash, которая модифицирует переменные окружения именно того процесса bash в котором она была запущена. Когда ты запускаешь программу в bash он передаёт копию своего окружения потомку. Если ты открываешь два терминала и в одном делаешь export ABC=1 то это не изменит переменные окружения в другом терминале и, конечно-же, не повлияет на переменные окружения процессов запускаемых IDE.

По идее грамотная IDE должна позволять задавать окружение в котором будет запускаться разрабатываемое приложение либо отладчик. Но не все это умеют. Я в какой-то момент пробовал QtCreator из за сырости 4го KDevelop но вернуля ко второму именно из за того, что мне было критично возможность запускать мои приложения в модифицированном окружении а QtCreator этого не поддерживал. Но это было год назад, как сейчас дела в креэйторе обстоят не знаю.

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.