Как получить как можно больше от dbx

Я ежедневно делаю TDD для моей разработки C++ на Solaris10. Это значительно сократило время, которое мне приходится тратить на использование моего отладчика, но иногда это единственный вариант.

DBX довольно мощный, но не такой удобный для пользователя. Обратите внимание, что я говорю о консоли DBX, а не о графическом интерфейсе SunStudio для DBX).

Какие лучшие советы по производительности вы можете дать для отладки dbx C++?

PS. Смена отладчика не вариант.

4 ответа

Решение

Я отметил несколько сайтов, связанных с dbx. Вот они, в произвольном порядке, если они могут быть вам полезны:

РЕДАКТИРОВАТЬ на 19 июля 2012 года: я пытался исправить несколько ссылок, так как блог Криса Квинеля переехал. К некоторым статьям все еще можно получить доступ благодаря машине обратного хода.

Одной из мощных функций dbx является встроенный ksh. Вы можете написать функции оболочки, которые являются настолько сложными, насколько это возможно, для печати настраиваемых представлений структур данных или следования указателям по определенному маршруту. Оболочка - это старая разновидность pdksh, поэтому она не самая лучшая для программирования, но гораздо лучше, чем отсутствие встроенного языка. Существует также обширная помощь, доступная из командной строки. Одним из способов поиска справки является использование "vi $helpfile" из командной оболочки dbx. Это позволяет редактировать необработанные данные справочного файла в одном большом файле. Вы можете увидеть некоторые примеры функций оболочки в файле dbxrc, который поставляется с dbx и загружается по умолчанию. Вы можете увидеть более сложный пример, посмотрев на модуль интеграции libumem. Вы можете найти это здесь:

http://blogs.oracle.com/quenelle/entry/using_dbx_and_libumem_to

Я тоже должен использовать dbx на работе и понимать твои разочарования!

Я обнаружил несколько советов, которые делают мою жизнь немного проще:

Используя встроенную систему команд, как это: когда остановите {напечатайте что-нибудь; }
Очевидно, что не работает, когда что-то выходит за рамки, но я нахожу это достаточно полезным. Мне еще предстоит испытать большую радость от объекта "след", YMMV.

Создание собственного файла.dbxrc значительно облегчает жизнь, равно как и функция "pathmap".

Наконец, это очевидно только в том случае, если вы уже это знаете, но попробуйте руководство Sun.

Это не особенно хорошо написано, но все же необходимо прочитать.

Спасибо Люку Эрмитту! Вот обновленная версия его ссылок и некоторых других.

Дополнительные советы:

  • dbx имеет встроенную оболочку ksh, поэтому вы можете создавать мощные настраиваемые функции.
  • Вы можете получить простую трассировку с чем-то вроде:
    • когда в foo.cc:35 { print varname; }
  • просмотреть всю интерактивную справку, используя: vi $helpfile
Другие вопросы по тегам