У меня есть следующий код в классе для чтения файла. Он работал правильно, когда он был в основном файле, но начал показывать поток, когда я помещал его в функцию в другом классе. Он автоматически отображает этот код при отладке:
_LIBCPP_INLINE_VISIBILITY
void __zero() _NOEXCEPT
{
size_type (&__a)[__n_words] = __r_.first().__r.__words;
for (unsigned __i = 0; __i < __n_words; ++__i)
__a[__i] = 0;
}
Это класс:
#include <iostream>
#include <fstream> // Stream class to both read and write from/to files
#include <string>
#include "CLevels.h"
using namespace std;
CLevels :: CLevels(){
}
int CLevels :: loadFile(){
std::string line;
ifstream myfile ("//Users//mariahsaliba//Documents//School//University//Second Year//Semester 1//CCE 2111 - Object Oriented Programming//Assignment_2013_CCE2110//Assignment//Levels.txt");
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
cout << line << '\n';
}
myfile.close();
}
else cout << "Unable to open file\n";
return 0;
}
Любая помощь, пожалуйста?
Многие стандартные библиотечные функции C++ встроены даже в режиме отладки (неоптимизированный, -O0
). Когда вы выполняете свой собственный C++ код по std::string
ctor или method на строковом объекте, код для реализации, который часто встроен прямо в вашу функцию. Отладчик видит этот встроенный код из файлов заголовков C++ прямо там.
lldb пытается скрыть эту вставку от вас, поэтому вы не видите ее по умолчанию. Но это довольно сложно, и если записи строки таблицы в отладочной информации не совсем правильны, иногда это будет выглядеть так, как будто вы вошли в середину функции из стандартной библиотеки.
Просто нажмите Далее/Шаг здесь, и я уверен, вы вернетесь к своему действительному методу.