Вызов функций в режиме отладки в VC ++ (Immediate Window) - PullRequest
5 голосов
/ 10 декабря 2011

Интересно, можно ли вызывать функции в режиме отладки в VC ++?Предположим, что у меня есть функция, для которой я устанавливаю точку останова, когда выполнение останавливается в этой точке во время отладки, могу ли я вызвать другие функции и посмотреть их результаты, прежде чем перейти к следующей строке кода?

Ответы [ 2 ]

3 голосов
/ 11 декабря 2011

Я верю, что вы можете. Я думаю, что это называется Immediate Window. Я использую VS2010 Ultimate, поэтому не знаю, существует ли он в вашей версии.

[ctrl] + [alt] + i

Но это печатает выходные данные только тогда, когда функция возвращает значение. Кроме того, он может не работать в некоторых случаях.

Допустим, у вас есть:

#include <iostream>

int number = 10; //global
void setNumber(int n);

int main()
{
  std::cout<<std::endl; //breakpoint 1 here
  setNumber(4);
  std::cout<<std::endl; //breakpoint 2 here
}

int getNumberSquared()
{
  return number * number;
}

void setNumber(int n)
{
  number = n;
}

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

getNumberSquared()

Выход будет 100 После достижения точки останова 2 сделайте то же самое, и результат будет 16

1 голос
/ 10 декабря 2011

Visual Studio имеет возможность перейти к определенному утверждению (right click + set next statement или ctrl+shift+F10), но помните при этом.Вызов функции требует, чтобы реестры были действительными, что, скорее всего, не будет, если вы перепрыгиваете через классы или выходите за рамки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...