Странное поведение отладчика при использовании элемента управления #line

Я использовал приведенный ниже код и попытался выполнить отладку в Visual Studio 2008, нажав F10.

//test.cpp
#include<iostream>
using namespace std;

int main(void)
{
#line 100 "test.cpp"
   cout<<"Inside main()"<<endl;
   return 0;
}

Ниже приведен снимок экрана отладчика.

alt text

#line 100 сообщает компилятору перейти к строке 100, чтобы получить следующую строку. Поскольку 100-я строка не существует, она выходит за рамки основной функции, как показано на скриншоте. Если я попытаюсь отладить код с помощью F10, управление никогда не вернется к основной функции. Он продолжает показывать указатель вне основной функции, даже если выполняет main ().

Если я дам другое имя файла вместо test.cpp, указатель перейдет к этому файлу, но не вернется к test.cpp

Есть идеи, почему отладчик ведет себя так?

5
задан Bill the Lizard 20 September 2012 в 21:03
поделиться