LINUX.ORG.RU

Отображение имени текущей функции в выводе QtCreator.


0

0

Нахожусь в глубокой отладке, посему рядом с каждым qDebug(), коих несколько десятков, подписывать имя функции руками не имею желания.

А мусор изредка сыпется, хотя и багов больше не наблюдаю. Откуда - загадка.

Я приписываю к каждой отладочной строчке, в самых неожиданных местах спасает. Вообще можно сделать так:

#define wylrodneyDebug() qDebug() << __FILE__ << __LINE__
Dendy ★★★★★
()
Ответ на: комментарий от Dendy

Благодарю :)

//После сессии намерен прочесть несколько больших книг по плюсам и разработки ПО вцелом. Нынешние кривые решения глаза режут. Так что подобных вопросов не будет)

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

Можно вообще применять __func__, тогда на его место будет подставленно имя функции. Но с ним есть проблема при кроссплатформенной разработке. Его не понимает MSVS 2005 и ниже (про остальные версии не знаю). Так же существует вероятность, что разные компиляторы будут подставлять немного отличающиеся написанием сигнатуры функций.

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

>Можно вообще применять __func__, <...> Но с ним есть проблема при кроссплатформенной разработке

Насколько я знаю, с __func__ проблемы нет, он стандартный. А вот гораздо более приятный __PRETTY_FUNCTION__ только в gcc.

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

> Насколько я знаю, с __func__ проблемы нет, он стандартный. А вот гораздо более приятный __PRETTY_FUNCTION__ только в gcc.

Если не ошибаюсь __func__ стандартный начиная с C99, а вот C99 MSVS как раз не умеет вообще.

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

Бывает ещё __FUNC__. Вообще тут надо просто раскурить доки. Лично я, к счастью, имею возможность с gcc не слезать и потому позволяю себе некоторые непереносимости.

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

> В Qt есть специальные макросы, возращающие название функции в рантайме

Век живи - век учись. Действительно, Q_FUNC_INFO разворачивается в читабельную C-строку для каждого компилятора в отдельности.

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

там еще можно подлатать дебаг так, чтобы он для каждой либы свой префикс выводил, например, вот так:

/home/sauron/.qutim/profiles/default/config/jabber.sauron@jabber.rock-zone.ru/account.json from cache
Jabber::JPlugin «302418694@qip.ru» «Искушение» QSet(«General»)

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