Присоединить отладчик totalview к переменной
Поэтому я пытаюсь отладить код. Но по какой-то причине он не проходит через раздел, который мне нужен. Управляющей переменной, которая вызывает фрагмент кода, является указатель "*sret". Я много пробовал, но безуспешно. Это программа на Си. Есть ли способ, которым я могу прикрепить точку наблюдения к переменной? поскольку он не распознает переменную... Он распознает файл, хотя.
1 ответ
@Ban,
Если вы используете отладчик TotalView, тогда это отличный вопрос. Да, мы предоставляем точки наблюдения. Однако они устанавливаются в ячейках памяти, а не в переменных. Это различие важно, потому что если вы представляете себе функцию, которая вызывает себя рекурсивно и локальную переменную X в этой функции. Вы можете запустить программу для этой функции, погрузиться в X и установить точку наблюдения на нем. Точка наблюдения сработает, если будет записан конкретный экземпляр X (который указывает на эту область памяти в стеке). Мы не остановимся, если, например, функция снова вызывает себя (что эффективно создает новый, отличный X в другом месте в стеке) и записывается второй X.
Некоторые другие возможности, которые вы можете найти полезными:
Вы можете установить значение вашей переменной прямо в отладчике. Вы можете использовать это, чтобы проверить, что если переменная имеет "правильное" значение, программа будет вести себя так, как вы ожидаете.
Вы можете пошагово выполнять инструкции за той частью программы, где вы ожидаете, что она примет решение пойти по пути кода, который вы ищете, чтобы попасть в него. Отображение как исходного, так и ассемблерного кода полезно для такого рода отладки.
Если вы работаете на платформе linux-x86-64, вам может пригодиться возможность ReplayEngine. Это позволяет вам бегать вперед и назад по вашей программе - что может помочь вам действительно точно понять, что происходит, чтобы помешать вашей программе делать то, что вы хотите.
Дайте мне знать, как вы справляетесь с отладкой этой проблемы. Если бы вы нашли свое решение каким-то другим способом, мне бы тоже было интересно.
Удачи!
Крис Готбрат
Главный менеджер по продукту для TotalView в Rogue Wave Software
электронная почта: первая точка последняя в roguewave dot com