Присоединить отладчик totalview к переменной

Поэтому я пытаюсь отладить код. Но по какой-то причине он не проходит через раздел, который мне нужен. Управляющей переменной, которая вызывает фрагмент кода, является указатель "*sret". Я много пробовал, но безуспешно. Это программа на Си. Есть ли способ, которым я могу прикрепить точку наблюдения к переменной? поскольку он не распознает переменную... Он распознает файл, хотя.

1 ответ

@Ban,

Если вы используете отладчик TotalView, тогда это отличный вопрос. Да, мы предоставляем точки наблюдения. Однако они устанавливаются в ячейках памяти, а не в переменных. Это различие важно, потому что если вы представляете себе функцию, которая вызывает себя рекурсивно и локальную переменную X в этой функции. Вы можете запустить программу для этой функции, погрузиться в X и установить точку наблюдения на нем. Точка наблюдения сработает, если будет записан конкретный экземпляр X (который указывает на эту область памяти в стеке). Мы не остановимся, если, например, функция снова вызывает себя (что эффективно создает новый, отличный X в другом месте в стеке) и записывается второй X.

Некоторые другие возможности, которые вы можете найти полезными:

  • Вы можете установить значение вашей переменной прямо в отладчике. Вы можете использовать это, чтобы проверить, что если переменная имеет "правильное" значение, программа будет вести себя так, как вы ожидаете.

  • Вы можете пошагово выполнять инструкции за той частью программы, где вы ожидаете, что она примет решение пойти по пути кода, который вы ищете, чтобы попасть в него. Отображение как исходного, так и ассемблерного кода полезно для такого рода отладки.

  • Если вы работаете на платформе linux-x86-64, вам может пригодиться возможность ReplayEngine. Это позволяет вам бегать вперед и назад по вашей программе - что может помочь вам действительно точно понять, что происходит, чтобы помешать вашей программе делать то, что вы хотите.

Дайте мне знать, как вы справляетесь с отладкой этой проблемы. Если бы вы нашли свое решение каким-то другим способом, мне бы тоже было интересно.

Удачи!

Крис Готбрат

Главный менеджер по продукту для TotalView в Rogue Wave Software

электронная почта: первая точка последняя в roguewave dot com

Другие вопросы по тегам