Я использовал приведенный ниже код и попытался выполнить отладку в Visual Studio 2008, нажав F10.
//test.cpp
#include<iostream>
using namespace std;
int main(void)
{
#line 100 "test.cpp"
cout<<"Inside main()"<<endl;
return 0;
}
Ниже приведен снимок экрана отладчика.
#line 100 сообщает компилятору перейти к строке 100, чтобы получить следующую строку. Поскольку 100-я строка не существует, она выходит за рамки основной функции, как показано на скриншоте. Если я попытаюсь отладить код с помощью F10, управление никогда не вернется к основной функции. Он продолжает показывать указатель вне основной функции, даже если выполняет main ().
Если я дам другое имя файла вместо test.cpp, указатель перейдет к этому файлу, но не вернется к test.cpp
Есть идеи, почему отладчик ведет себя так?