Скажем, у меня есть следующийПросмотреть возвращаемое значение?
int num = 40 + str2Int("30");
Есть в любом случае с Visual Studio 2008, чтобы сказать, что str2int возвращается, не наступив в функцию и собирается к возвращению?
Скажем, у меня есть следующийПросмотреть возвращаемое значение?
int num = 40 + str2Int("30");
Есть в любом случае с Visual Studio 2008, чтобы сказать, что str2int возвращается, не наступив в функцию и собирается к возвращению?
В окнах переменных «auto» будет отображаться результат любых операций, которые вы только что преодолели.
Edit: Удалена неопределенность местоположения этого (спасибо идет Майкл Барр)
Святое дерьмо - я не могу поверить, что не знал этого! (это окно «Авто», BTW). Является ли это новым с VS2008 или он существует там годами? –
+1. Я тоже этого не знал. Какая замечательная особенность! – wj32
Прохладный, он показывает «Str2Int возвращен», а затем то, что он вернул. Также как вы выполняете операции? Входите в функцию и переходите через все шаги по всей линии. @ Майкл, он был там надолго. Никогда не замечал разницы между ним и местными жителями до сих пор. – user230821
cout << Str2Int("30") << endl;
Or!
cout << (num - 40) << endl;
Правильный способ программирования - всегда писать небольшие фрагменты кода, чтобы проверить, как все работает. Например, если вы хотите изучить функцию str2int
(как пример, как вы сказали), создайте тестовый файл только для него. Запустите его с различными параметрами, изучите, как это работает. Затем вы, наконец, убедитесь, что он работает правильно и не нужно будет входить в него внутри выражений. Когда программисты знакомятся с инструментами, они доверяют им и не нуждаются в том, чтобы всегда проверять, как они работают.
Кроме того, если это функция , у вас есть, то прямое следствие этого - создать файл с модульными тестами для него. Единичные тесты выполняют функцию различными способами, пока вы не сможете доверять ей, что она действительно работает.
* Как только программисты знакомятся с инструментами, они доверяют им и не должны всегда проверять, как они работают. *: -1. Не нужно копаться в этом отношении, он спрашивает, как получить общий вид информации от отладчика. Его использование 'str2int' иллюстрирует, что он * не подозревает библиотеку. – Potatoswatter
@eli - это не всегда значит доверять функции. У вас может быть абсолютно безаварийная, 100% доверенная функция и все еще хочет увидеть, что ее вывод по той простой причине, что вы не знаете, каким будет ее выход. Например, если я не знаю, где указатель файла находится в 'ФАЙЛЕ', я не знаю, что будет возвращать' fgetc() ', но это значение может представлять интерес для меня, пока я отлаживаю , –
Вы можете использовать окно Visual Studio Immediate. Это позволит вам оценить различные выражения.
Можете привести пример? Я никогда не смогу заставить выражения работать. – user230821
Я не хотел этого, так как я был на PowerPC, и я ничего не использую в Microsoft, но вы, вероятно, хотите, чтобы список регистров и вид кода сборки ... MSVC должен иметь эти.
Остановить команду после вызова функции (что должно быть легко выбрать), и в соответствии с Wikipedia возвращаемое значение должно быть в EAX/RAX. Скопируйте значение (или изучите синтаксис отладчика для ссылки на регистр) и введите в соответствующий тип.
Поскольку возвращаемое значение, как правило, находится в регистре EAX, вы устанавливаете $eax
«переменную» в окне просмотра. Когда вы переходите через вызов функции, то, что в EAX, это то, что эта функция вернулась.
И если вы также указываете символ формата hr
, отладчик покажет вам сообщение об ошибке HRESULT или Win32 (например, «S_OK» или «Доступ запрещен») вместо простого номера. Может быть удобно иметь каждый ($eax
и $eax,hr
) в отдельных записях.
Еще одна полезная запись $err
, который показывает то, что GetLastError()
вернется (и символ формата hr
могут быть применены к нему - или что-нибудь - а):
$eax
$eax,hr
$err
$err,hr
Обратите внимание, что старые версии отладчика VS может хотите, чтобы вы использовали @
вместо $
, чтобы начать эти переменные, но член команды отладчика заявил, что $
предпочтительнее поддерживать все в соответствии с набором инструментов «Отладка для Windows» (я думаю, что поддержка @
устарел и может быть удален в какой-то момент).
Это очевидно из названия самой функции, что она превращающая строку в Int. –
Его пример ... Плюс что, если функция прослушивается и не возвращается 30? Вот почему я спрашиваю об этом. Это боль, чтобы найти ошибки, когда вы вызываете вызовы функций в выражении. – user230821
Что случилось с входом в функцию и просмотром возвращаемого значения? Для этого нужен отладчик. – jamesdlin